我正在尝试创建一个非常简单的向上滑动列表视图,当用户单击屏幕底部的按钮时会显示该视图.这是它应该看起来的样子:

并在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();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9991 次 |
| 最近记录: |