【发布时间】:2014-12-14 17:28:35
【问题描述】:
您好,我尝试制作的动画有问题。
我使用这个库AndroidViewAnimations。
这是我的布局 xml 代码:
<Button
android:id="@+id/buttonDetails"
style="@style/Button_Details"/>
<LinearLayout
android:id="@+id/linearLayoutDetails"
android:visibility="gone"
style="@style/LinearLayout_Details">
<CheckBox
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/checkbox_clmn_text"
android:checked="true"/>
<CheckBox
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/checkbox_clme_text"
android:checked="true"/>
<CheckBox
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/checkbox_clmn_text"
android:checked="true"/>
<CheckBox
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/checkbox_clmn_text"
android:checked="true"/>
<CheckBox
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/checkbox_clmn_text"
android:checked="true"/>
<CheckBox
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/checkbox_clmn_text"
android:checked="true"/>
</LinearLayout>
这里是我的 java 代码:
// Declare Variables
@ViewById
LinearLayout linearLayoutDetails;
@Click
void buttonDetails() {
// Checks Linear Layout Visibility
if (linearLayoutDetails.getVisibility() == View.GONE) {
// Sets linearLayoutDetails Visibility to VISIBLE
linearLayoutDetails.setVisibility(View.VISIBLE);
// Makes Appear Animation
YoYo.with(Techniques.SlideInDown)
.duration(700)
.playOn(linearLayoutDetails);
} else {
linearLayoutDetails.setVisibility(View.GONE);
}
}
现在的问题是我第一次按下按钮时动画不工作,但之后每隔一次工作。
我做了一些研究,发现问题是我将可见性设置为消失了,如果我将其设置为不可见,它从第一次开始就可以正常工作。问题是我不希望可见性不可见而是消失,因为我不希望线性布局在隐藏时占用空间。
有什么想法吗?
【问题讨论】:
-
我不是一个期望,但在做动画之前尝试在你的线性布局上调用 requestLayout()。你有YoYo的代码吗?能看到真实的代码就好了。
-
是的,我已经尝试过 requestLayout() 但它没有用
标签: java android animation view visibility