ScrollView巢狀ListView只顯示一行

2021-06-19 04:59:56 字數 1056 閱讀 2979

在開發的過程當中,由於手機螢幕的大小的限制,我們經常需要使用滑動的方式,來顯示更多的內容。在最近的工作中,遇見乙個需求,需要將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...