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