有誰知道基於當前選擇或使用setSelection設置選擇集的ListView居中方式嗎?在其當前選擇中居中ListView
我沒有看到這個StackOverflow的其他問題沒有任何答案:Android ListView center selection
感謝, 凱文
有誰知道基於當前選擇或使用setSelection設置選擇集的ListView居中方式嗎?在其當前選擇中居中ListView
我沒有看到這個StackOverflow的其他問題沒有任何答案:Android ListView center selection
感謝, 凱文
我還沒有嘗試過這一點,但基於當前的選擇,你可以使用public void smoothScrollByOffset (int offset)
來獲取視圖滾動到您想要的位置,以便您的選擇位於視圖中間?
首先,使用getHeight獲取ListView的高度,該高度以像素爲單位返回ListView的高度。
然後,使用相同的方法獲取該行視圖的高度。
然後,使用setSelectionFromTop並將ListView的高度的一半減去該行高度的一半。
喜歡的東西:
int h1 = mListView.getHeight();
int h2 = v.getHeight();
mListView.setSelectionFromTop(position, h1/2 - h2/2);
或者,而不是做數學題,你可能只是挑選從頂部偏移恆定的,但我認爲這可能是對自第二不同的設備更脆弱setSelectionFromTop的參數似乎是以像素爲單位而不是與設備無關的像素。
我還沒有測試過這段代碼,但只要你的行高度大致相同,它就會工作。
爲我工作... – 2013-11-11 06:29:35
您將需要有滾動視圖和所選項目的視圖。然後,你可以簡單地做:
scrollView.smoothScrollTo(0, selectedView.getTop() - (scrollView.getHeight()/2) + (selectedView.getHeight()/2), 0);
這將圍繞滾動視圖正好在selectedView
你好,你可以幫我這個..我的影片只得到了5項,並因此一個ListView ListView不會滾動。但我想將選定的項目設置爲居中,而smoothScrollByOffset(int offset)似乎不起作用。 – 2017-03-27 04:45:21