我有我的應用程序中的表列表視圖。用戶可以在列表中添加更多數據。我想在新添加的數據中顯示默認列表視圖位置。然而,我使用如果我使用smoothScrollToPosition,有動畫慢慢向下滾動,這是不可取的。你們知道如何設置沒有動畫的默認位置嗎?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;
}