我有一個ListView滾動屏幕的元素數量。如何將空白空間添加到ListView的末尾?
我想在那裏有視圖結尾的空白處。也就是說,用戶應該能夠滾動瀏覽最後一個元素,使得最後一個元素位於視口的中間。
我可以使用OverScroller,但我認爲這隻會使視圖具有像iPhone上經常看到的彈性效果。
有沒有我可能忽略的東西?
的滾動到最鈕屏幕應該是這個樣子:
我有一個ListView滾動屏幕的元素數量。如何將空白空間添加到ListView的末尾?
我想在那裏有視圖結尾的空白處。也就是說,用戶應該能夠滾動瀏覽最後一個元素,使得最後一個元素位於視口的中間。
我可以使用OverScroller,但我認爲這隻會使視圖具有像iPhone上經常看到的彈性效果。
有沒有我可能忽略的東西?
的滾動到最鈕屏幕應該是這個樣子:
addHeaderView()
)代碼來衡量屏幕高度
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int screenHeight = display.getHeight();
代碼來設置半屏幕高度:
View layout = inflater.inflate(R.layout.mylistviewfooter, container, false);
ViewGroup.LayoutParams lp = layout.getLayoutParams();
lp.height = screenHeight/2;
layout.setLayoutParams(lp);
myListView.addFooterView(layout);
另存爲: 將腳註或標題視圖添加到任何列表視圖時,必須在添加適配器之前完成。另外,如果你需要做這之後,讓您的適配器類,你需要知道調用ListView的適配器通過getAdapter()
將返回HeaderViewListAdapter中,你將需要調用它的getWrappedAdapter方法 事情是這樣的一個實例:
MyAdapterClassInstance myAdapter = (MyAdapterClassInstance) ((HeaderViewListAdapter) myListView.getAdapter()).getWrappedAdapter();
嘗試如下:
View footer = new View(getActivity());
footer.setLayoutParams(new AbsListView.LayoutParams(LayoutParams.FILL_PARENT, 100));
// 100 is the height, you can change it.
mListView.addFooterView(footer, null, false);
接受的答案是太複雜了,而且addFooterView不是這種事情。正確和簡單的方法是設置paddingTop和paddingBottom,並且您需要將clipToPadding設置爲「false」。在您的列表視圖或網格視圖中,添加以下內容:
android:paddingTop="100dp"
android:paddingBottom="100dp"
android:clipToPadding="false"
你會得到在頂部和空白的空間,用手指滾動移動底部。
是的,這很簡單 – DayDayHappy
這是更好的答案。 – ootinii
有人發現,如果你觸摸填充ListView不滾動?在我的情況下,填充可能高達屏幕高度的2/3,所以這對我不起作用。除非有人知道如何讓它滾動? – darnmason
這100%的作品。 適配器設置你這樣的代碼
//in getCount
@Override
public int getCount() {
return ArrayList.size()+1;
}
//in getview make your code like this
public View getView(final int i, View view, ViewGroup viewGroup) {
view = inflter.inflate(R.layout.yourlayout, null);
if(i<getCount()-1) {
//your code
}
else{
ViewGroup itemContainer =(ViewGroup) view.findViewById(R.id.container);
itemContainer.setVisibility(View.INVISIBLE);
}
Return view;
}
任何我能想到的將是一個黑客,因爲列表視圖不工作的方式......但你可以在如果列表中getView調整最後視線的高度位置== count - 1. – JustinMorris