專案中出現單選多選這種情況挺多的,所以整合成一個控制元件了,使用方便,可以設定單選,也可以設定多選,最主要的是採用了流式佈局,會自動根據螢幕大小和內容進行自動折行。
- xml中:
<app.myapplication.ButtonFlowLayout
android:id="@+id/buttnLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
複製程式碼
- 設定單選:
mButtonFLowLayout = findViewById(R.id.buttnLayout);
data.add("天氣不錯");
data.add("咔嚓咔嚓咔嚓");
data.add("多雲");
data.add("雷電交加");
data.add("雨夾雪");
mButtonFLowLayout.setDataList(data);
複製程式碼
- 設定多選
mButtonFLowLayout.setDataList(data,true);
複製程式碼
預設不傳是單選效果,預設選中第一項,也可以修改:
從 0
預設是第一項,例如設定預設選中第二項:
mButtonFLowLayout.setSingleSelectItem(1);
複製程式碼
- 設定選中監聽 單選
mButtonFLowLayout.setOnSingleChanedListener(new ButtonFlowLayout.OnSingleChanedListener() {
@Override
public void onSingleChaned(int index) {
Toast.makeText(MainActivity.this,"當前選中:"+index,Toast.LENGTH_SHORT).show();
}
});
複製程式碼
多選
mButtonFLowLayout.setOnMultifyChanedListenerr(new ButtonFlowLayout.OnMultifyChanedListener() {
@Override
public void onMultifyChaned(List<Integer> indexs) {
for(int i=0;i<indexs.size();i++){
Log.i("xx","當前選中的集合是:"+indexs.get(i));
}
}
});
複製程式碼
方便快捷,程式碼傳送門:https://github.com/QQabby/MultifyCheckButton 喜歡就給個start吧。