![](/img/trans.png)
[英]how can we slide a hidden layout from the bottom of screen to middle screen in android?
[英]How can I “slide up” a view on android from the bottom of a screen?
我正在尝试创建一个非常简单的向上滑动列表视图,当用户单击屏幕底部的按钮时会显示该视图。 这是它应该看起来的样子:
并在HTML / JS http://jsbin.com/utAQOVA/1/edit中完整实现
我尝试使用RelativeLayout
将列表放在按钮下方,然后将整个内容放入包装器中,然后向上/向下动画(与上面的JSBin相同)。
问题是,即使我向上滑动,在开头看不到的底部部分也会以某种方式被修剪。 Evern,如果我最初显示列表的一部分,如下面的屏幕显示所示,底部部分在向上移动时被剪切,只显示最初可见的部分。
做这种动画的正确方法是什么?
编辑:经过简短的讨论(在接受的答案的评论中)我通过删除动画部分周围的包装LinearLayout
来解决这个问题,我只是改变了ListView
高度,它推动了按钮。
您可能遇到的问题可能来自ListView如何进行自己的布局,基本上它适合屏幕上可用的大小并绘制该部分,因为您创建的ListView没有高度或非常小的高度,它保持的大小。 您可以通过两种方法解决此问题:
改编自我在评论中提到的帖子,ValueAnimator应如下所示:
ValueAnimator va = ValueAnimator.ofInt(0, height);
va.setDuration(700);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Integer value = (Integer) animation.getAnimatedValue();
v.getLayoutParams().height = value.intValue();
v.setTranslationY(-value.intValue());
v.requestLayout();
}
});
你正在寻找的动画看起来像这样.-
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="100%p"
android:toYDelta="0" />
你可以运行它存储动画xml资源,然后做 -
Animation anim = AnimationUtils.loadAnimation(this, R.anim.animId);
yourView.startAnimation(anim);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.