ListView巢狀ListView的思路

2021-07-09 05:19:15 字數 2084 閱讀 4399

1.在activity中,布局中新增原生listview作為 父listview

<?xml version="1.0" encoding="utf-8"?>

2.在父listview中新增自定義的  子listview

<?xml version="1.0" encoding="utf-8"?>

3. 子listview中的布局為單個item的布局。

<?xml version="1.0" encoding="utf-8"?>

4.書寫父listview的adapter

public class eventcitylistadapter extends baseadapter 

}@override

public int getcount()

@override

public object getitem(int i)

@override

public long getitemid(int i)

@override

public view getview(int i, view convertview, viewgroup viewgroup) else

holder.citytitle.settitle(citylist.get(i).getname());

holder.countryview.setadapter(countrylistadapters.get(i));

return convertview;

}public class itemviewholder

}

5.書寫子listview的adapter

public class countrylistadapter extends baseadapter 

@override

public int getcount()

@override

public object getitem(int i)

@override

public long getitemid(int i)

@override

public view getview(int i, view convertview, viewgroup viewgroup) else

holder.itemlabletitle.settext(countrylist.get(i).getname());

return convertview;

}public class itemcountryviewholder

}

6.在activity或fragment中載入資料。

private listcitylist;

private eventcitylistadapter eventcityadapter;

private listview eventcitylist;

citylist = new arraylist<>();

for (int i = 0; i < eventcitymodel.getcitylist().size(); i++)

citylistentity.setchildren(childrenentitylist);

citylist.add(citylistentity);

} eventcityadapter = new eventcitylistadapter(getactivity(), citylist);

eventcitylist.setadapter(eventcityadapter);

setlistviewheightbasedonchildren(eventcitylist);

7.完成。

解決ListView巢狀ListView遇到的問題

listview巢狀會造成的問題主要是子listview的高度錯誤導致內容不能正常顯示完,解決這個問題,我個人第乙個想法就是重新計算子listview的高度,如下 private void setlistviewheightbasedonchildren listview listview int ...

ListView巢狀listView問題

listview巢狀listview 外層的listview是原生的,裡面的是自定義的mylistview 1.如果兩層都是listview,出現問題 裡層的listview只會顯示一條資料 2.如果外層mylistview,裡層listview 出現問題 導致只能顯示一屏資料,而且裡層的listv...

ListView巢狀ListView優化

在做業務時候,乙個listview顯示多種資料型別,我們想到的方法是listview在巢狀乙個listview,對於子listview 佔父listview的一行,就解決了問題,但是這樣的邏輯是不是有點奇怪呢?第一,父listview的長度size需要加1,因為增加了一行放子listview pub...