以编程方式在ListView中设置位置,而无需滚动

用户名

这是针对运行Android 4.4.2的平板电脑。我有一个包含数百个项目的ListView,一次约有20个可见。用户不需要平滑滚动的动画。如何在不使用smoothScrollToPosition()的情况下以编程方式设置Listview中的显示位置

我搜索了Stack Overflow,在Android ListView中,setSelection()似乎不起作用,他们建议这样做:

mListView.clearFocus();
mListView.post(new Runnable() {
    @Override
    public void run() {
        mListView.setSelection(index);
    }
});

但这只是设置选择;它不会使ListView的该部分可见。setSelection()似乎是整个网络上流行的解决方案,但是我在文档中找不到任何内容说setSelection()也设置位置,并且它仅设置选择内容,并且不会更改我的位置。

不使用smoothScrollToPosition的情况下转到Listview中的项目时,他们提出了Romain Guy的解决方案...

[myListView.post(new Runnable() 
{
    @Override
    public void run() 
    {
        myListView.setSelection(pos);
        View v = myListView.getChildAt(pos);
        if (v != null) 
        {
            v.requestFocus();
        }
    }
});] 

这个问题是我的ListView是ListActivity的一部分,该ListActivity通过自定义适配器的getView()进行管理,因此不可见的视图将被回收,即,如果我请求不在屏幕上的视图的子视图,返回null无论如何,它实际上是我要控制的ListView,因此通过子级View间接执行它似乎完全是间接的。

如何告诉ListView我希望在屏幕上看到哪一部分?

奥沙伊尔甘

AbsListView中有一个方法被调用smoothScrollToPositionFromTop(),它带有duration参数。因此,如果将其设置为0,则无需滚动动画即可完成此操作。

smoothScrollToPositionFromTop

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

以编程方式在ListView中设置激活的项目

来自分类Dev

以编程方式发送短信而无需打开短信应用

来自分类Dev

ListView行在CustomAdapter中以编程方式设置了左边距

来自分类Dev

以编程方式编辑CodeMirror内容而无需访问对象

来自分类Dev

ios以编程方式拨打电话而无需退出应用

来自分类Dev

如何以编程方式关闭Chrome通知而无需清除

来自分类Dev

以编程方式拍照而无需用户交互

来自分类Dev

以编程方式启用定位模式高精度或省电,而无需用户访问设置

来自分类Dev

以编程方式构建公式而无需字符串操作

来自分类Dev

放大ListView内容而无需缩放滚动条

来自分类Dev

以编程方式检索流利的配置,而无需实例化DbContext

来自分类Dev

以编程方式设置滚动条的宽度

来自分类Dev

以编程方式实例化UIViewController,而无需使用笔尖

来自分类Dev

以编程方式向FrameLayout中添加填充,而无需使用ScrollView内容移动内部Fragment

来自分类Dev

以编程方式防止滚动listview抖动

来自分类Dev

以编程方式更改网络设置而无需root用户

来自分类Dev

以编程方式设置ImageButton的位置

来自分类Dev

ListView行在CustomAdapter中以编程方式设置了左边距

来自分类Dev

A片段上的快捷按钮,以编程方式执行B中定义的操作,而无需在UI上显示

来自分类Dev

以编程方式构建公式而无需字符串操作

来自分类Dev

缩放到ListView内容而无需缩放滚动条

来自分类Dev

使固定位置div可滚动而无需滚动条,也无需滚动背景内容

来自分类Dev

Android:以编程方式启用位置设置,而无需离开应用程序或进入设置屏幕

来自分类Dev

如何在BaseAdapter中以编程方式设置ListView项

来自分类Dev

以编程方式实例化UIViewController,而无需使用笔尖

来自分类Dev

如何在Android中以编程方式设置滚动视图?

来自分类Dev

是否可以通过编程方式添加提醒而无需在android日历中创建事件?

来自分类Dev

使用 CustomListViewAdapter 时以编程方式滚动到 ListView 中的项目

来自分类Dev

如何以编程方式设置 SKNode 在 ARSKView 场景中的位置?

Related 相关文章

  1. 1

    以编程方式在ListView中设置激活的项目

  2. 2

    以编程方式发送短信而无需打开短信应用

  3. 3

    ListView行在CustomAdapter中以编程方式设置了左边距

  4. 4

    以编程方式编辑CodeMirror内容而无需访问对象

  5. 5

    ios以编程方式拨打电话而无需退出应用

  6. 6

    如何以编程方式关闭Chrome通知而无需清除

  7. 7

    以编程方式拍照而无需用户交互

  8. 8

    以编程方式启用定位模式高精度或省电,而无需用户访问设置

  9. 9

    以编程方式构建公式而无需字符串操作

  10. 10

    放大ListView内容而无需缩放滚动条

  11. 11

    以编程方式检索流利的配置,而无需实例化DbContext

  12. 12

    以编程方式设置滚动条的宽度

  13. 13

    以编程方式实例化UIViewController,而无需使用笔尖

  14. 14

    以编程方式向FrameLayout中添加填充,而无需使用ScrollView内容移动内部Fragment

  15. 15

    以编程方式防止滚动listview抖动

  16. 16

    以编程方式更改网络设置而无需root用户

  17. 17

    以编程方式设置ImageButton的位置

  18. 18

    ListView行在CustomAdapter中以编程方式设置了左边距

  19. 19

    A片段上的快捷按钮,以编程方式执行B中定义的操作,而无需在UI上显示

  20. 20

    以编程方式构建公式而无需字符串操作

  21. 21

    缩放到ListView内容而无需缩放滚动条

  22. 22

    使固定位置div可滚动而无需滚动条,也无需滚动背景内容

  23. 23

    Android:以编程方式启用位置设置,而无需离开应用程序或进入设置屏幕

  24. 24

    如何在BaseAdapter中以编程方式设置ListView项

  25. 25

    以编程方式实例化UIViewController,而无需使用笔尖

  26. 26

    如何在Android中以编程方式设置滚动视图?

  27. 27

    是否可以通过编程方式添加提醒而无需在android日历中创建事件?

  28. 28

    使用 CustomListViewAdapter 时以编程方式滚动到 ListView 中的项目

  29. 29

    如何以编程方式设置 SKNode 在 ARSKView 场景中的位置?

热门标签

归档