我已经研究了几天,但没有解决。这个问题中的问题与我的问题相似,但我也无法使用它来解决我的问题。
我曾尝试像 whatsapp 一样获得圆形显示效果,其中显示的视图将在其他视图的顶部膨胀。在我的情况下,当我在当前java类的layout.xml中已经存在的布局上应用动画时,它工作正常,但问题是在我的例子中是 LInearLayout 的显示布局将推送其他内容(在它下面) 放下并为它腾出位置。
在这种情况下,我的布局如下,
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<io.codetail.widget.RevealFrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/reveal_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/icon_camera" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Gallery" />
</LinearLayout>
<!-- Other 2 icons here-->
</LinearLayout>
</io.codetail.widget.RevealFrameLayout>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Enter Name" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="OK" />
线性布局/>
我的显示布局将按下 EditText 并按下按钮为其腾出位置,但我想在它们的顶部显示..
然后我尝试将显示视图代码放在另一个reveal-layout.xml 文件中,并将该布局扩展为在javacode 中创建的视图(在我的情况下为LinearLayout)。然后尝试在此 LinearLayout 上应用显示效果,但它给了我“无法在分离视图上启动此动画师”异常。
我的revealing-layout.xml 看起来像
<io.codetail.widget.RevealFrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/reveal_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/icon_camera" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Gallery" />
</LinearLayout>
<!-- Other 2 icons here-->
</LinearLayout>
</io.codetail.widget.RevealFrameLayout>
在按钮单击中,我调用函数revealView(); 如下所示,
public void revealView()
{
int cx = (mRevealView.getLeft() + mRevealView.getRight());
int cy = mRevealView.getTop();
int radius = Math.max(mRevealView.getWidth(), mRevealView.getHeight());
// and all animations here, the animator is working fine so i did not put the code here
}
如果我在我的 MainActivity onCreate()方法中将 mRevealView 初始化为mRevealView=(LinearLayout)findviewbyid(R.id.reveal_items)并对其进行膨胀和分配视图,那么动画师将在此视图上正常工作。但是当我尝试创建新的布局时,例如 mRevealView=new LinearLayout(this)并设置其参数等所有内容时,当我在其上应用 animator 时它会给出此错误。 无法在分离视图上启动此动画。
我在这里做错了什么,任何人都可以建议我。