我在GridView上使用以下动画,
当活动通过slideToBottom(myGridView)加载时,我将其隐藏了;
public void slideToBottom(View view){
TranslateAnimation animate = new TranslateAnimation(0,0,0,view.getHeight());
animate.setDuration(500);
animate.setFillAfter(true);
view.startAnimation(animate);
view.setVisibility(View.GONE);
}
我遇到的问题是,当单击一个botton显示视图时,它只是使它可见而没有动画;当我再次单击它时,它将加载动画,将其滑动到顶部的代码在下面,
public void slideToTop(View view){
TranslateAnimation animate = new TranslateAnimation(0,0,view.getHeight(),0);
animate.setDuration(1000);
animate.setFillAfter(true);
view.startAnimation(animate);
view.setVisibility(View.VISIBLE);
}
<RelativeLayout
android:id="@+id/container"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:clipChildren="false"
android:clipToPadding="false"
>
....some other stuff here
<GridView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myGridView"
android:horizontalSpacing="2dip"
android:numColumns="3"
android:scrollbars="vertical"
android:verticalSpacing="0dip"
android:paddingTop="8dp"
/>
</RelativeLayout>
我究竟做错了什么?
最佳答案
不确定是否与问题有关,但是在您的代码中:
view.startAnimation(animate);
view.setVisibility(View.GONE);
startAnimation()
仅启动动画。将可见性设置为GONE之前,您应该等待它完成。请参见Hide view with animation and set visibility to gone without flash the screen上的示例
同样,要在视图中滑动,应该在开始动画之前使其可见。
关于android - TranslateAnimation在屏幕外移动 View -Android,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32552888/