以编程方式抛出 ListView Android
Posted
技术标签:
【中文标题】以编程方式抛出 ListView Android【英文标题】:Programmatically Fling ListView Android 【发布时间】:2010-11-15 22:38:03 【问题描述】:有没有办法以编程方式在列表视图上执行 Fling?我知道有猴子可以做所有这些事情,但这需要与 adb 等的计算机连接。我想在任何手机上使用我的应用程序来完成所有这些事情。
谢谢, 费萨尔
【问题讨论】:
【参考方案1】:有两种方法可以“平滑滚动”而不是跳转到某个位置。
查看http://developer.android.com/reference/android/widget/ScrollView.html
对于smoothScrollBy()
和smoothScrollTo()
。
希望这会有所帮助。
【讨论】:
您指的是滚动视图,而问题是针对列表视图。 Listview 也有一些简洁的特性:smootScrollToPosition 和 smootScrollByOffset。但是,这些仅在 api 级别 8 和 11 中可用。 developer.android.com/reference/android/widget/…【参考方案2】:private AnimationSet set;
public void onClick(View v)
if(v.getId() == R.id.pullbutton)
artListview.setVisibility(View.INVISIBLE);
if(set == null)
set = new AnimationSet(true);
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(100);
set.addAnimation(animation);
animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, -1.0f,
Animation.RELATIVE_TO_SELF, 0.0f
);
animation.setDuration(1000);
set.addAnimation(animation);
showPullDownSectionList();
public void showPullDownSectionList()
flipper = (ViewFlipper) findViewById(R.id.ViewFlipper01);
flipper.setVisibility(View.VISIBLE);
setLayoutAnim_slidedownfromtop(flipper);
public void setLayoutAnim_slidedownfromtop(ViewFlipper flipper)
LayoutAnimationController controller =
new LayoutAnimationController(set, 0.25f);
flipper.setLayoutAnimation(controller);
【讨论】:
【参考方案3】:你可以用动画来伪造它(我认为Accelerate_decelerate_interpolator可以完成这项工作)。
似乎还支持您自己滚动视图:
public void scrollBy (int x, int y)
移动视图的滚动位置。这将导致调用 onScrollChanged(int, int, int, int) 并且视图将失效。
参数 x 水平滚动的像素数量 y 垂直滚动的像素数量
public void scrollTo (int x, int y)
设置视图的滚动位置。这将导致调用 onScrollChanged(int, int, int, int) 并且视图将失效。
参数 x 要滚动到的 x 位置 y 要滚动到的 y 位置【讨论】:
嘿卢卡斯,你有代码 sn-p,我很困惑。谢谢,费萨尔 您好,我添加了更多对您有帮助的信息。 这不起作用。它滚动包含 listView 的视图,但不是实际的 listView...抱歉...仍在寻找。以上是关于以编程方式抛出 ListView Android的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式滚动到 Android ListView 中的特定位置
ListView:如何从外部以编程方式访问 Item 的元素?