ListView 顯示兩種不同的Item 布局

2021-08-18 11:20:15 字數 1495 閱讀 1869

1,需求:android 7.0 設定settings,新增語言add language的展示介面中,去除suggested 這個條目

經過分析發現,其實就是listview 的item 展示不同布局的問題

第一步:    

//change date:2018/3/16 by  第乙個type型別從 type_header_suggested = 0 改為 type_header_all_others = 0,按順序排列

private static final int type_header_suggested = 2;

private static final int type_header_all_others = 0;

private static final int type_locale = 1;

第二步:

@override

public int getitemviewtype(int position) else

// if (position == msuggestioncount + 1)

return type_locale;

// }

}

第三步:

@override

public int getviewtypecount() else

}

第四步:

@override

public int getcount() else

}

第五步:

@override

public object getitem(int position)

return mlocaleoptions.get(position + offset);

}

第六步: 注釋掉  case :

@override

public view getview(int position, view convertview, viewgroup parent)

int itemtype = getitemviewtype(position);

switch (itemtype)

// return msuggestioncount != 0 && msuggestioncount != mlocaleoptions.size();

return false;

}

主要的問題就是,listview展示不同的條目之後,要修改相應的api的返回值。

完成後的效果圖, 只剩下 綠色的 all languages 這一行了:去掉了suggested(不貼圖了)

ListView顯示不同布局

在使用不同布局的時候,getitemviewtype和getviewtype不能少,通常是不用這兩個函式的過載的 listview.setadapter new baseadapter override public int getitemviewtype int position if posit...

兩種不同的盒模型

邊框 border 外邊距 margin 內邊距 padding 元素的邊框就是圍繞在內容和內邊距的一條或多條線,它的屬性是border 邊框有三個屬性值1.寬度 2.樣式 3.顏色 border width style color 寬度樣式 solid 實線 dashed 虛線 dotted 點狀...

兩種不同的模擬方法

無論您選擇採用tdd還是採用更傳統的方法,都將單獨測試類。這通常意味著您要使用介面進行編碼,並將依賴項注入類中。去年,我不得不測試乙個servlet。servlet是展示容器外測試的展示櫃,因為它們依賴於do 方法中的所述容器。這些方法中的每乙個都依賴於httpservletrequest和http...