要解決的問題:
1、listview在scrollview中不能完全顯示,只能顯示乙個item。預設情況下,android是不支援在scrollview中巢狀listview,因為listview的高度是不確定,會隨著item的高度和item的數量改變。
2、焦點問題,如果把listview顯示的項數固定,變成可滾動的,當布局的高度超出了一頁,scrollview滾動,listview則不能滾動。
對問題1的解決辦法:由於listview的高度不固定,在scrollview中只能顯示一項,所以我們要把listview的高度「固定」住。這裡的「固定」不是指設定高度為多少個dip,而是指listview顯示的項數。
建乙個公共類,實現乙個公共方法:
public
class
toolsutil
int totalheight = 0;
for (int i = 0, len = listadapter.getcount(); i < len && (i < itemlimitecount); i++)
viewgroup.layoutparams params = listview.getlayoutparams();
params.height = totalheight + (listview.getdividerheight() * (listadapter.getcount() - 1));
// listview.getdividerheight()獲取子項間分隔符占用的高度
// params.height最後得到整個listview完整顯示需要的高度
listview.setlayoutparams(params);
}}
如果你希望listview顯示數量最多為5項,超過則為可滾動檢視,那個引數itemlimitecount則設為5。如果希望不限制高度,則設為乙個超大的數,但是記得要讓listview分步載入資料。
注意:必須要在listview設定了adapter,且adapter設定了資料之後才呼叫這個方法,否則不起作用。
對問題二的解決辦法:
為listview設定觸控監聽:
listview.setontouchlistener(new view.ontouchlistener() else
return
false;
}});
ScrollView巢狀ListView只顯示一行
在開發的過程當中,由於手機螢幕的大小的限制,我們經常需要使用滑動的方式,來顯示更多的內容。在最近的工作中,遇見乙個需求,需要將listview巢狀到scrollview中顯示。於是乎有了如下布局 執行程式,如下結果,無論你如何調整layout width,layout height屬性,listvi...
ScrollView巢狀GridView的情況
開發中用到了需要scrollview巢狀gridview的情況,由於這兩款控制項都自帶滾動條,當他們碰到一起的時候便會出問題,即gridview會顯示不全。解決辦法,自定義乙個gridview控制項 public class mygridview extends gridview public my...
ScrollView巢狀ListView解決方法
在android中,不允許巢狀具有滑動視窗的view,但是有時又需要用到,這時需要重寫listview方法,這時就可以使用了,具體如下 package com.example.wangyi.review import android.content.context import android.ut...