下午好,提前ListView的下一個項目/ setSelectionFromTop不工作/禁止用戶滾動ListView控件
我有一個展示的項目列表的列表視圖...好不是他們的全部,但他們都在那裏。而不是讓用戶向上/向下滾動需求和向上/向下按鈕。除了如何推進ListView之外,我已經處理得非常好。假設我正在查看列表中的第3項。用戶點擊接下來...我想要ListView前進到第4項。我在內部跟蹤他們在哪個頁面上進行遞增/遞減。我期待找到這樣的東西,但沒有骰子。
ListView.MoveNext();
或
ListView.Move(int);
每佈雷登的建議,我在這裏試圖接受的解決方案:Maintain/Save/Restore scroll position when returning to a ListView並沒有出現滾動列表....即。它停留在第一個列表項上。我也試過setSelection。
這裏是我的代碼:
public void btn_NextClick(View vw_Current)
{
//increment page count 1
i_PageTracker ++;
//advance to next record
//int x = lstvw_LiftData.getFirstVisiblePosition();
View v = lstvw_LiftData.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
lstvw_LiftData.setSelectionFromTop(i_PageTracker, top);
//lstvw_LiftData.setSelection(i_PageTracker);
}
基於弗拉基米爾的成功和我的缺乏,我想提供,我認爲無關,但一些額外的信息....
我已經延長了SimpleAedapter並重寫getView。我也有一個DataBinder來填充來自數據對象的某些數據的TextViews。
有趣的是,當我在DataAdapter的getView中設置斷點,並在加載時設置活頁夾的setViewValue時,我們會根據情況命中它們。然而,當下一個按鈕被點擊時,我們不會擊中它們,如果列表正在前進到下一個位置,我們不會期望它們....嗯,我想知道....我有另一個想法....馬上回來。
我想通了......但我不知道該怎麼辦。看到我不知道自己在做什麼,我開槍自殺。我只想一次看到列表中的一個項目,我不希望用戶能夠滾動。那麼我所做的就是在DataAdapter中重寫getCount並返回1.這就是答案,因爲只有一個項目顯示很酷!但是,覆蓋getCount也意味着只有一個項目可以顯示,所以我們永遠不會前進......沒有什麼可推進的。
所以我想知道的是這個。如何防止用戶滾動並強制他們使用導航按鈕。我是否處理滾動事件並返回null?
看到這個問題:http://stackoverflow.com/questions/3014089/scroll-to-a-position-in-a-listview – Brayden
你確定'btn_NextClick()'被調用嗎?我剛剛嘗試過'int position = _listView.getFirstVisiblePosition(); 嘗試_listView。setSelection(position + 1); }趕上(例外e){}',它完美的作品 – Vladimir
是的,當斷點受到打擊。 – GPGVM