在開發的過程當中,由於手機螢幕的大小的限制,我們經常需要使用滑動的方式,來顯示更多的內容。在最近的工作中,遇見乙個需求,需要將listview巢狀到scrollview中顯示。於是乎有了如下布局:
執行程式,如下結果,無論你如何調整layout_width,layout_height屬性,listview列表只顯示一列!
在查閱的各種文件和資料後,發現在scrollview中巢狀listview空間,無法正確的計算listview的大小,故可以通過**,根據當前的listview的列表項計算列表的尺寸。實現**如下:
public class mainactivity extends activity ;
listview.setadapter(new arrayadapter(this,android.r.layout.******_list_item_1,adapterdata));
setlistviewheightbasedonchildren(listview);
} public void setlistviewheightbasedonchildren(listview listview)
int totalheight = 0;
for (int i = 0, len = listadapter.getcount(); i < len; i++)
viewgroup.layoutparams params = listview.getlayoutparams();
params.height = totalheight+ (listview.getdividerheight() * (listadapter.getcount() - 1));
// listview.getdividerheight()獲取子項間分隔符占用的高度
// params.height最後得到整個listview完整顯示需要的高度
listview.setlayoutparams(params); } }
執行結果,ok問題搞定,打完收工! 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...
ScrollView巢狀ListView問題的解決
scrollview巢狀listview後,因為滑動事件的衝突,導致listview只能顯示乙個item的高度,針對出現的這個問題,有以下兩種解決方案 1.動態設定listview 的高度 public static void setlistviewheightbasedonchildren lis...