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;
}