安卓列表视图设置默认位置,不带动画
我的应用中有一个表列表视图,用户可以在列表中添加更多数据。我想在新添加的数据中显示默认列表视图位置。但是,如果我使用smoothScrollToPosition,则使用动画缓慢向下滚动,这是不希望的。如何在没有该动画的情况下设置默认位置?
我的应用中有一个表列表视图,用户可以在列表中添加更多数据。我想在新添加的数据中显示默认列表视图位置。但是,如果我使用smoothScrollToPosition,则使用动画缓慢向下滚动,这是不希望的。如何在没有该动画的情况下设置默认位置?
我认为这是你需要的。ListView.setSelection(int position)
在我的应用程序中,我有类似的需求。我曾经定义列表的位置,它在没有滚动的情况下工作得很好。getListView().setSelection()
如果您考虑有 2 个活动,则 ActivityA(显示游标中的列表)和 ActivityB(具有用于添加新项的窗体)。完成后,ActivityB 应返回项目光标 ID,然后可以使用 id 检索项目的位置,并设置位置,如以下代码所示:ActivityB
/* 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;
}