單選多選按鈕

weixin_34166847發表於2018-04-27

專案中出現單選多選這種情況挺多的,所以整合成一個控制元件了,使用方便,可以設定單選,也可以設定多選,最主要的是採用了流式佈局,會自動根據螢幕大小和內容進行自動折行。

  • 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吧。

相關文章