2

我正在關注這個link的回答,以在屏幕上一次性顯示一個listview項。它正在爲我工​​作,但滾動和項目向上移動並適合屏幕的動畫效果不佳。在列表視圖上應用平滑滾動

我搜索並找到了方法setSelectionFromTop正在造成這種情況。

但是,如果我使用smoothScrollToPosition那麼我的要求,以適應一個項目在屏幕上我沒有履行。

請幫我this.What我務必做好以達到列表視圖中的兩個

  1. 適合一個項目在一個時間上的屏幕
  2. 滾動應工作平穩

回答

0

首先,要一次只適合屏幕上的一個項目,您需要設置每個項目的高度以匹配ListView的高度。

public View getView(int position, View convertView, ViewGroup parent) { 
    ... 
    int totalHeight = listView.getHeight(); 
    int rowHeight = totalHeight/getCount(); 
    // Set the row height for each of the rows 
    ... 

只有一個項目顯示在同一時間,在您使用setSelectionFromTop()或smoothScrollToPosition(),它最終將具有相同的結果。所以你現在可以使用smoothScrollToPosition()。

另一種方法是嘗試設置選擇。

listView.setSelection(position) 
listView.setSelectionAfterHeaderView() 

setSelectionAfterHeaderView將滾動ListView到正確的位置。

希望這會有所幫助。