Android列表视图设置默认位置没有动画

问题描述:

我有我的应用程序中的表列表视图。用户可以在列表中添加更多数据。我想在新添加的数据中显示默认列表视图位置。然而,我使用如果我使用smoothScrollToPosition,有动画慢慢向下滚动,这是不可取的。你们知道如何设置没有动画的默认位置吗?Android列表视图设置默认位置没有动画

非常感谢! 关于 便士

我认为ListView.setSelection(int position)是你所需要的。

在我的应用程序中,我有类似的需求。我用getListView().setSelection()来定义列表的位置,它运行良好,没有滚动。

如果您认为有2个活动,ActivityA这表明从游标和ActivityB其中有一个表单添加一个新的项目列表。在完成,ActivityB应该回报的项目光标ID,然后ActivityB可以检索与该ID的项目的位置,并设置位置,这样的代码:

/* check intent Id to scroll to the right item after update or delete */ 
if (getIntent().hasExtra(ITEMID_INTENT_KEY)) 
{ 
    long id = getIntent().getLongExtra(ITEMID_INTENT_KEY, 0); 
    int position = getPositionFromId(id); 
    getListView().setSelection(position > 0 ? position - 1 : 0); 
    getIntent().removeExtra(ITEMID_INTENT_KEY); 
} 

(...) 

private int getPositionFromId(long id) 
{ 
    mCursor.moveToFirst(); 
    do 
    { 
     Long cursorId = mCursor.getLong(mCursor.getColumnIndexOrThrow(yourIdColumn)); 
     if (cursorId.longValue() == id) 
     { 
      return mCursor.getPosition(); 
     } 
    } 
    while (mCursor.moveToNext()); 
    return 0; 
}