【问题标题】:How to scroll to a child element in a ListActivity如何滚动到 ListActivity 中的子元素
【发布时间】:2011-03-17 16:25:06
【问题描述】:

我有一个 ListActivity 类,它使用 CursorAdapter 填充列表。 我需要做的是让视图根据列表中元素的值向下滚动到列表中的特定元素。

列表是带有“截止日期”的项目列表,如果截止日期已过,我希望视图滚动过去。因此,在启动时,用户将在顶部看到最近到期日期的项目(视图将滚动到该项目)。如果他们想查看过期日期,可以向上滚动。

我希望我能正确解释这一点,如果项目的截止日期已经过去,我只是想隐藏我的 ListActivity 中的项目,当然基于 Activity 的启动时间。

【问题讨论】:

    标签: android listactivity android-scroll


    【解决方案1】:

    这行得通:

    ListView list = getListView();
    int count = list.getCount();
    
    long now = new GregorianCalendar().getTimeInMillis();
    int scrollTo = 0;
    
    for ( int i = 0; i < count; i++ ) {
        Cursor cursor = (Cursor)list.getItemAtPosition( i );
        long endtime = cursor.getLong( "endtime" );
        if ( endtime > now ) {
            //this is the one we want to scroll to
            scrollTo = i;
            break;
        }
    }
    temp.setSelection( scrollTo );
    

    【讨论】:

      【解决方案2】:

      查看项目以找到断点,然后使用smoothScrollToPosition 函数动画到该位置

      Android Developer Site : AbsListView#smoothScrollToPosition

      【讨论】:

      • 如何浏览项目,如何获得项目相对于其他项目的位置...?
      【解决方案3】:

      这只是一个想法,但是如果您有一个项目列表并且您可以获取到期日期并且您还具有当前日期的信息,那么您为什么不调整列表的重力以使其具有当前注释在顶部....

      如果您在列表视图中有一个笔记列表,在您的活动的 onresume 和 oncreate 方法中,重新排列列表中的笔记,以便将传递的笔记放在列表的底部,这样当前笔记总是在最上面,你不必担心试图弄乱重力

      【讨论】:

        猜你喜欢
        • 2015-11-18
        • 2010-10-04
        • 1970-01-01
        • 1970-01-01
        • 2019-12-25
        • 2019-09-28
        • 2020-06-10
        • 1970-01-01
        • 2010-10-12
        相关资源
        最近更新 更多