gpt4 book ai didi

android - 我如何从屏幕底部 "slide up"在 android 上查看?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:14 25 4
gpt4 key购买 nike

我正在尝试制作一个非常简单的向上滑动 ListView ,当用户单击屏幕底部的按钮时会显示该 ListView 。它应该是这样的:

sliding thingy

以及 HTML/JS 中的完整实现 http://jsbin.com/utAQOVA/1/edit

我尝试使用 RelativeLayout 将列表定位在按钮下方,并将整个内容放入包装器中,然后将其向上/向下设置动画(与上面的 JSBin 中相同)。

问题是开始时不可见的底部以某种方式被剪掉了,即使我将它向上滑动也是如此。如果我最初显示列表的一部分,如下面的屏幕显示,当它向上移动时,底部部分会被剪掉,只显示最初可见的部分。

clipping

制作这种动画的正确方法是什么?

Here's a relevant portion of the layout

编辑:经过简短的讨论(在已接受答案的评论中),我通过移除围绕动画部分的包装 LinearLayout 解决了这个问题,我只是改变了高度ListView,它将按钮向上推。

最佳答案

您遇到的问题可能来自 ListView 如何进行自己的布局,基本上它适合屏幕上可用的大小并绘制该部分,并且由于您创建的 ListView 没有高度或它保持的高度非常小。您可以通过两种方法解决此问题:

  1. 用简单的 LinearLayout 替换 ListView - 填充所有你列出项目,如果你没有很多项目,我会这样做list - 然后是 ListView 相对于简单 LinearLayout 的优势可以忽略不计。
  2. 使用 ValueAnimator 并更新动画时的 ListView。

改编 self 在评论中提到的一篇文章,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();
}
});
  • 我不确定使用 setTranslationY 是否是解决这个问题的正确方法,或者您应该使用负的 marginTop 值(取决于布局)

关于android - 我如何从屏幕底部 "slide up"在 android 上查看?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com