ScrollView巢狀多個ListView

2021-07-24 21:28:28 字數 1228 閱讀 6182

要解決的問題:

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...