Browse Source

0.0.37.beta1

kongzue 4 years ago
parent
commit
0abed31ee5

BIN
DialogX/libs/DialogXInterface.jar


+ 139 - 15
DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomMenu.java

@@ -21,6 +21,7 @@ import com.kongzue.dialogx.interfaces.OnBindView;
 import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener;
 import com.kongzue.dialogx.interfaces.OnIconChangeCallBack;
 import com.kongzue.dialogx.interfaces.OnMenuItemClickListener;
+import com.kongzue.dialogx.interfaces.OnMenuItemSelectListener;
 import com.kongzue.dialogx.util.NormalMenuArrayAdapter;
 import com.kongzue.dialogx.util.TextInfo;
 import com.kongzue.dialogx.util.views.BottomDialogListView;
@@ -40,8 +41,16 @@ import static android.view.View.OVER_SCROLL_NEVER;
  */
 public class BottomMenu extends BottomDialog {
     
+    public enum SELECT_MODE {
+        NONE,
+        SINGLE,
+        MULTIPLE
+    }
+    
     protected BottomMenu me = this;
     protected int selectionIndex = -1;
+    protected SELECT_MODE selectMode = SELECT_MODE.NONE;
+    protected ArrayList<Integer> selectionItems;
     
     protected OnMenuItemClickListener<BottomMenu> onMenuItemClickListener;
     
@@ -456,9 +465,6 @@ public class BottomMenu extends BottomDialog {
     
     private float touchDownY;
     
-    public static final int DELAY = 500;
-    private long lastClickTime = 0;
-    
     @Override
     protected void onDialogInit(final DialogImpl dialog) {
         if (dialog != null) {
@@ -496,20 +502,78 @@ public class BottomMenu extends BottomDialog {
             listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                 @Override
                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                    long currentTime = System.currentTimeMillis();
-                    if (currentTime - lastClickTime > DELAY) {
-                        lastClickTime = currentTime;
-                        float deltaY = Math.abs(touchDownY - dialog.bkg.getY());
-                        if (deltaY > dip2px(15)) {
-                            return;
-                        }
-                        if (onMenuItemClickListener != null) {
-                            if (!onMenuItemClickListener.onClick(me, menuList.get(position), position)) {
+                    float deltaY = Math.abs(touchDownY - dialog.bkg.getY());
+                    if (deltaY > dip2px(15)) {
+                        return;
+                    }
+                    switch (selectMode) {
+                        case NONE:
+                            if (onMenuItemClickListener != null) {
+                                if (!onMenuItemClickListener.onClick(me, menuList.get(position), position)) {
+                                    dismiss();
+                                }
+                            } else {
                                 dismiss();
                             }
-                        } else {
-                            dismiss();
-                        }
+                            break;
+                        case SINGLE:
+                            if (onMenuItemClickListener instanceof OnMenuItemSelectListener) {
+                                OnMenuItemSelectListener<BottomMenu> onMenuItemSelectListener = (OnMenuItemSelectListener<BottomMenu>) onMenuItemClickListener;
+                                if (!onMenuItemSelectListener.onClick(me, menuList.get(position), position)) {
+                                    dismiss();
+                                } else {
+                                    boolean select = false;
+                                    if (selectionIndex == position) {
+                                        selectionIndex = -1;
+                                    } else {
+                                        selectionIndex = position;
+                                        select = true;
+                                    }
+                                    menuListAdapter.notifyDataSetInvalidated();
+                                    menuListAdapter.notifyDataSetChanged();
+                                    onMenuItemSelectListener.onOneItemSelect(me, menuList.get(position), position, select);
+                                }
+                            } else {
+                                if (onMenuItemClickListener != null) {
+                                    if (!onMenuItemClickListener.onClick(me, menuList.get(position), position)) {
+                                        dismiss();
+                                    }
+                                } else {
+                                    dismiss();
+                                }
+                            }
+                            break;
+                        case MULTIPLE:
+                            if (onMenuItemClickListener instanceof OnMenuItemSelectListener) {
+                                OnMenuItemSelectListener<BottomMenu> onMenuItemSelectListener = (OnMenuItemSelectListener<BottomMenu>) onMenuItemClickListener;
+                                if (!onMenuItemSelectListener.onClick(me, menuList.get(position), position)) {
+                                    dismiss();
+                                } else {
+                                    if (selectionItems.contains(position)) {
+                                        selectionItems.remove(new Integer(position));
+                                    } else {
+                                        selectionItems.add(position);
+                                    }
+                                    menuListAdapter.notifyDataSetInvalidated();
+                                    menuListAdapter.notifyDataSetChanged();
+                                    int[] resultArray = new int[selectionItems.size()];
+                                    CharSequence[] selectTextArray = new CharSequence[selectionItems.size()];
+                                    for (int i = 0; i < selectionItems.size(); i++) {
+                                        resultArray[i] = selectionItems.get(i);
+                                        selectTextArray[i] = menuList.get(resultArray[i]);
+                                    }
+                                    onMenuItemSelectListener.onMultiItemSelect(me, selectTextArray, resultArray);
+                                }
+                            } else {
+                                if (onMenuItemClickListener != null) {
+                                    if (!onMenuItemClickListener.onClick(me, menuList.get(position), position)) {
+                                        dismiss();
+                                    }
+                                } else {
+                                    dismiss();
+                                }
+                            }
+                            break;
                     }
                 }
             });
@@ -814,8 +878,64 @@ public class BottomMenu extends BottomDialog {
         return selectionIndex;
     }
     
+    public ArrayList<Integer> getSelectionList() {
+        return selectionItems;
+    }
+    
     public BottomMenu setSelection(int selectionIndex) {
+        this.selectMode = SELECT_MODE.SINGLE;
         this.selectionIndex = selectionIndex;
+        this.selectionItems = null;
+        menuListAdapter = null;
+        refreshUI();
+        return this;
+    }
+    
+    public BottomMenu setSingleSelection() {
+        this.selectMode = SELECT_MODE.SINGLE;
+        this.selectionIndex = -1;
+        this.selectionItems = null;
+        menuListAdapter = null;
+        refreshUI();
+        return this;
+    }
+    
+    public BottomMenu setSelection(int[] selectionItems) {
+        this.selectMode = SELECT_MODE.MULTIPLE;
+        this.selectionIndex = -1;
+        this.selectionItems = new ArrayList<>();
+        if (selectionItems != null) {
+            for (int itemIndex : selectionItems) {
+                this.selectionItems.add(itemIndex);
+            }
+        }
+        menuListAdapter = null;
+        refreshUI();
+        return this;
+    }
+    
+    public BottomMenu setMultiSelection() {
+        this.selectMode = SELECT_MODE.MULTIPLE;
+        this.selectionIndex = -1;
+        this.selectionItems = new ArrayList<>();
+        menuListAdapter = null;
+        refreshUI();
+        return this;
+    }
+    
+    public BottomMenu setSelection(List<Integer> selectionItems) {
+        this.selectMode = SELECT_MODE.MULTIPLE;
+        this.selectionIndex = -1;
+        this.selectionItems = new ArrayList<>(selectionItems);
+        menuListAdapter = null;
+        refreshUI();
+        return this;
+    }
+    
+    public BottomMenu setNoSelect() {
+        this.selectMode = SELECT_MODE.NONE;
+        this.selectionIndex = -1;
+        this.selectionItems = null;
         menuListAdapter = null;
         refreshUI();
         return this;
@@ -916,4 +1036,8 @@ public class BottomMenu extends BottomDialog {
         this.exitAnimDuration = exitAnimDuration;
         return this;
     }
+    
+    public SELECT_MODE getSelectMode() {
+        return selectMode;
+    }
 }

+ 37 - 0
DialogX/src/main/java/com/kongzue/dialogx/interfaces/OnMenuItemSelectListener.java

@@ -0,0 +1,37 @@
+package com.kongzue.dialogx.interfaces;
+
+/**
+ * @author: Kongzue
+ * @github: https://github.com/kongzue/
+ * @homepage: http://kongzue.com/
+ * @mail: myzcxhh@live.cn
+ * @createTime: 2021/4/11 19:18
+ */
+public abstract class OnMenuItemSelectListener<D> implements OnMenuItemClickListener<D> {
+    
+    /**
+     * 警告:不建议重写此方法!
+     * 如果选择使用 OnMenuItemSelectListener 作为 BottomMenu 的回调,那么点击 Item 后,菜单默认不应该关闭,
+     * 若选择自行处理菜单点击 onClick,那么请务必 return true 作为返回值,
+     * 否则不会处理 onOneItemSelect 或 onMultiItemSelect 事件。
+     *
+     * @param dialog BottomMenu实例
+     * @param text   菜单文本
+     * @param index  菜单索引值
+     * @return return true:拦截自动关闭对话框;return false:点击后关闭对话框
+     */
+    @Deprecated
+    @Override
+    public boolean onClick(D dialog, CharSequence text, int index) {
+        return true;
+    }
+    
+    public void onOneItemSelect(D dialog, CharSequence text, int index, boolean select) {
+    
+    }
+    
+    public void onMultiItemSelect(D dialog, CharSequence[] text, int[] indexArray) {
+    
+    }
+    
+}

+ 6 - 1
DialogX/src/main/java/com/kongzue/dialogx/style/MaterialStyle.java

@@ -188,7 +188,12 @@ public class MaterialStyle implements DialogXStyle {
             public int overrideSelectionImage(boolean light, boolean isSelected) {
                 return isSelected ? R.mipmap.img_dialogx_bottom_menu_material_item_selection : R.mipmap.img_dialogx_bottom_menu_material_item_non_select;
             }
-            
+    
+            @Override
+            public int overrideMultiSelectionImage(boolean light, boolean isSelected) {
+                return isSelected ? R.mipmap.img_dialogx_bottom_menu_material_item_multi_selection : R.mipmap.img_dialogx_bottom_menu_material_item_non_multi_select;
+            }
+    
         };
     }
     

+ 55 - 34
DialogX/src/main/java/com/kongzue/dialogx/util/NormalMenuArrayAdapter.java

@@ -19,8 +19,11 @@ import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.R;
 import com.kongzue.dialogx.dialogs.BottomMenu;
 
+import java.util.ArrayList;
 import java.util.List;
 
+import static com.kongzue.dialogx.DialogX.log;
+
 /**
  * @author: Kongzue
  * @github: https://github.com/kongzue/
@@ -69,7 +72,6 @@ public class NormalMenuArrayAdapter extends BaseAdapter {
             LayoutInflater mInflater = LayoutInflater.from(context);
             
             int resourceId = R.layout.item_dialogx_material_bottom_menu_normal_text;
-            int overrideSelectionBackgroundColorRes = 0;
             if (bottomMenu.getStyle().overrideBottomDialogRes() != null) {
                 resourceId = bottomMenu.getStyle().overrideBottomDialogRes().overrideMenuItemLayout(bottomMenu.isLightTheme(), position, getCount(), false);
                 if (resourceId == 0) {
@@ -83,8 +85,6 @@ public class NormalMenuArrayAdapter extends BaseAdapter {
                         }
                     }
                 }
-                
-                overrideSelectionBackgroundColorRes = bottomMenu.getStyle().overrideBottomDialogRes().overrideSelectionMenuBackgroundColor(bottomMenu.isLightTheme());
             }
             convertView = mInflater.inflate(resourceId, null);
             
@@ -92,45 +92,66 @@ public class NormalMenuArrayAdapter extends BaseAdapter {
             viewHolder.txtDialogxMenuText = convertView.findViewById(R.id.txt_dialogx_menu_text);
             viewHolder.imgDialogxMenuSelection = convertView.findViewById(R.id.img_dialogx_menu_selection);
             
-            if (bottomMenu.getSelection() >= 0) {
-                if (viewHolder.imgDialogxMenuSelection != null) {
-                    if (bottomMenu.getSelection() == position) {
+            convertView.setTag(viewHolder);
+        } else {
+            viewHolder = (ViewHolder) convertView.getTag();
+        }
+        if (bottomMenu.getSelectMode() == BottomMenu.SELECT_MODE.SINGLE) {
+            if (viewHolder.imgDialogxMenuSelection != null) {
+                if (bottomMenu.getSelection() == position) {
+                    viewHolder.imgDialogxMenuSelection.setVisibility(View.VISIBLE);
+                    int overrideSelectionImageResId = bottomMenu.getStyle().overrideBottomDialogRes().overrideSelectionImage(bottomMenu.isLightTheme(), true);
+                    if (overrideSelectionImageResId != 0) {
+                        viewHolder.imgDialogxMenuSelection.setImageResource(overrideSelectionImageResId);
+                    }
+                } else {
+                    int overrideSelectionImageResId = bottomMenu.getStyle().overrideBottomDialogRes().overrideSelectionImage(bottomMenu.isLightTheme(), false);
+                    if (overrideSelectionImageResId != 0) {
                         viewHolder.imgDialogxMenuSelection.setVisibility(View.VISIBLE);
-                        int overrideSelectionImageResId = bottomMenu.getStyle().overrideBottomDialogRes().overrideSelectionImage(bottomMenu.isLightTheme(), true);
-                        if (overrideSelectionImageResId != 0) {
-                            viewHolder.imgDialogxMenuSelection.setImageResource(overrideSelectionImageResId);
-                        }
+                        viewHolder.imgDialogxMenuSelection.setImageResource(overrideSelectionImageResId);
                     } else {
-                        int overrideSelectionImageResId = bottomMenu.getStyle().overrideBottomDialogRes().overrideSelectionImage(bottomMenu.isLightTheme(), false);
-                        if (overrideSelectionImageResId != 0) {
-                            viewHolder.imgDialogxMenuSelection.setVisibility(View.VISIBLE);
-                            viewHolder.imgDialogxMenuSelection.setImageResource(overrideSelectionImageResId);
-                        }else{
-                            viewHolder.imgDialogxMenuSelection.setVisibility(View.INVISIBLE);
-                        }
+                        viewHolder.imgDialogxMenuSelection.setVisibility(View.INVISIBLE);
                     }
                 }
-            } else {
-                viewHolder.imgDialogxMenuSelection.setVisibility(View.GONE);
             }
-            if (bottomMenu.getSelection() == position) {
-                if (overrideSelectionBackgroundColorRes != 0) {
-                    convertView.setBackgroundTintList(ColorStateList.valueOf(context.getResources().getColor(overrideSelectionBackgroundColorRes)));
-                    final View finalRootView = convertView;
-                    convertView.post(new Runnable() {
-                        @Override
-                        public void run() {
-                            finalRootView.setPressed(true);
-                        }
-                    });
+        } else if (bottomMenu.getSelectMode() == BottomMenu.SELECT_MODE.MULTIPLE) {
+            if (viewHolder.imgDialogxMenuSelection != null) {
+                if (bottomMenu.getSelectionList().contains(position)) {
+                    viewHolder.imgDialogxMenuSelection.setVisibility(View.VISIBLE);
+                    int overrideSelectionImageResId = bottomMenu.getStyle().overrideBottomDialogRes().overrideMultiSelectionImage(bottomMenu.isLightTheme(), true);
+                    if (overrideSelectionImageResId != 0) {
+                        viewHolder.imgDialogxMenuSelection.setImageResource(overrideSelectionImageResId);
+                    }
+                } else {
+                    int overrideSelectionImageResId = bottomMenu.getStyle().overrideBottomDialogRes().overrideMultiSelectionImage(bottomMenu.isLightTheme(), false);
+                    if (overrideSelectionImageResId != 0) {
+                        viewHolder.imgDialogxMenuSelection.setVisibility(View.VISIBLE);
+                        viewHolder.imgDialogxMenuSelection.setImageResource(overrideSelectionImageResId);
+                    } else {
+                        viewHolder.imgDialogxMenuSelection.setVisibility(View.INVISIBLE);
+                    }
                 }
-            } else {
-                convertView.setBackgroundTintList(null);
             }
-            
-            convertView.setTag(viewHolder);
         } else {
-            viewHolder = (ViewHolder) convertView.getTag();
+            viewHolder.imgDialogxMenuSelection.setVisibility(View.GONE);
+        }
+        int overrideSelectionBackgroundColorRes = 0;
+        if (bottomMenu.getStyle().overrideBottomDialogRes() != null) {
+            overrideSelectionBackgroundColorRes = bottomMenu.getStyle().overrideBottomDialogRes().overrideSelectionMenuBackgroundColor(bottomMenu.isLightTheme());
+        }
+        if (bottomMenu.getSelection() == position) {
+            if (overrideSelectionBackgroundColorRes != 0) {
+                convertView.setBackgroundTintList(ColorStateList.valueOf(context.getResources().getColor(overrideSelectionBackgroundColorRes)));
+                final View finalRootView = convertView;
+                convertView.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        finalRootView.setPressed(true);
+                    }
+                });
+            }
+        } else {
+            convertView.setBackgroundTintList(null);
         }
         CharSequence text = objects.get(position);
         

BIN
DialogX/src/main/res/mipmap-xxhdpi/img_dialogx_bottom_menu_material_item_multi_selection.png


BIN
DialogX/src/main/res/mipmap-xxhdpi/img_dialogx_bottom_menu_material_item_non_multi_select.png


+ 5 - 0
DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/IOSStyle.java

@@ -230,6 +230,11 @@ public class IOSStyle implements DialogXStyle {
             public int overrideSelectionImage(boolean light, boolean isSelected) {
                 return 0;
             }
+            
+            @Override
+            public int overrideMultiSelectionImage(boolean light, boolean isSelected) {
+                return 0;
+            }
         };
     }
     

+ 3 - 1
DialogXInterface/src/main/java/com/kongzue/dialogx/interfaces/DialogXStyle.java

@@ -4,7 +4,7 @@ import android.content.Context;
 
 public interface DialogXStyle {
     
-    int styleVer = 2;
+    int styleVer = 3;
     
     int BUTTON_OK = 1;
     int BUTTON_CANCEL = 2;
@@ -101,6 +101,8 @@ public interface DialogXStyle {
         boolean selectionImageTint(boolean light);
         
         int overrideSelectionImage(boolean light, boolean isSelected);
+    
+        int overrideMultiSelectionImage(boolean light, boolean isSelected);
     }
     
     interface PopTipSettings {

+ 5 - 0
DialogXKongzueStyle/src/main/java/com/kongzue/dialogx/style/KongzueStyle.java

@@ -157,6 +157,11 @@ public class KongzueStyle implements DialogXStyle {
             public int overrideSelectionImage(boolean light, boolean isSelected) {
                 return 0;
             }
+    
+            @Override
+            public int overrideMultiSelectionImage(boolean b, boolean b1) {
+                return 0;
+            }
         };
     }
     

+ 5 - 0
DialogXMIUIStyle/src/main/java/com/kongzue/dialogx/style/MIUIStyle.java

@@ -172,6 +172,11 @@ public class MIUIStyle implements DialogXStyle {
             public int overrideSelectionImage(boolean light, boolean isSelected) {
                 return 0;
             }
+    
+            @Override
+            public int overrideMultiSelectionImage(boolean b, boolean b1) {
+                return 0;
+            }
         };
     }
     

+ 3 - 0
app/build.gradle

@@ -38,4 +38,7 @@ dependencies {
     implementation 'com.github.kongzue:DialogXStyle-Snackbar:1.0.6'
     //implementation 'com.github.kongzue.dialogx:DialogX:0.0.37'
     implementation project(path: ':DialogX')
+//    implementation project(path: ':DialogXIOSStyle')
+//    implementation project(path: ':DialogXKongzueStyle')
+//    implementation project(path: ':DialogXMIUIStyle')
 }

+ 45 - 4
app/src/main/java/com/kongzue/dialogxdemo/MainActivity.java

@@ -51,6 +51,7 @@ import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener;
 import com.kongzue.dialogx.interfaces.OnIconChangeCallBack;
 import com.kongzue.dialogx.interfaces.OnInputDialogButtonClickListener;
 import com.kongzue.dialogx.interfaces.OnMenuItemClickListener;
+import com.kongzue.dialogx.interfaces.OnMenuItemSelectListener;
 import com.kongzue.dialogx.style.IOSStyle;
 import com.kongzue.dialogx.style.KongzueStyle;
 import com.kongzue.dialogx.style.MIUIStyle;
@@ -58,6 +59,8 @@ import com.kongzue.dialogx.style.MaterialStyle;
 import com.kongzue.dialogx.util.InputInfo;
 import com.kongzue.dialogx.util.TextInfo;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Timer;
 import java.util.TimerTask;
 
@@ -97,6 +100,7 @@ public class MainActivity extends BaseActivity {
     private TextView btnBottomMenu;
     private TextView btnBottomReply;
     private TextView btnBottomSelectMenu;
+    private TextView btnBottomMultiSelectMenu;
     private TextView btnCustomMessageDialog;
     private TextView btnCustomInputDialog;
     private TextView btnCustomBottomMenu;
@@ -137,6 +141,7 @@ public class MainActivity extends BaseActivity {
         btnBottomMenu = findViewById(R.id.btn_bottom_menu);
         btnBottomReply = findViewById(R.id.btn_bottom_reply);
         btnBottomSelectMenu = findViewById(R.id.btn_bottom_select_menu);
+        btnBottomMultiSelectMenu = findViewById(R.id.btn_bottom_multiSelect_menu);
         btnCustomMessageDialog = findViewById(R.id.btn_customMessageDialog);
         btnCustomInputDialog = findViewById(R.id.btn_customInputDialog);
         btnCustomBottomMenu = findViewById(R.id.btn_customBottomMenu);
@@ -210,7 +215,11 @@ public class MainActivity extends BaseActivity {
     private TextView btnClose;
     private WebView webView;
     
+    private String[] singleSelectMenuText = new String[]{"拒绝", "询问", "始终允许", "仅在使用中允许"};
+    private String[] multiSelectMenuText = new String[]{"上海", "北京", "广州", "深圳"};
     private int selectMenuIndex;
+    private int[] selectMenuIndexArray;
+    private String multiSelectMenuResultCache;
     
     @Override
     public void setEvents() {
@@ -674,20 +683,52 @@ public class MainActivity extends BaseActivity {
         btnBottomSelectMenu.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                BottomMenu.show(new String[]{"拒绝", "询问", "始终允许", "仅在使用中允许"})
+                BottomMenu.show(singleSelectMenuText)
                         .setMessage("这里是权限确认的文本说明,这是一个演示菜单")
                         .setTitle("获得权限标题")
-                        .setOnMenuItemClickListener(new OnMenuItemClickListener<BottomMenu>() {
+                        .setOnMenuItemClickListener(new OnMenuItemSelectListener<BottomMenu>() {
                             @Override
-                            public boolean onClick(BottomMenu dialog, CharSequence text, int index) {
+                            public void onOneItemSelect(BottomMenu dialog, CharSequence text, int index, boolean select) {
                                 selectMenuIndex = index;
-                                PopTip.show(text);
+                            }
+                        })
+                        .setOkButton("确定", new OnDialogButtonClickListener<BottomDialog>() {
+                            @Override
+                            public boolean onClick(BottomDialog baseDialog, View v) {
+                                PopTip.show("已选择:" + singleSelectMenuText[selectMenuIndex]);
                                 return false;
                             }
                         })
                         .setSelection(selectMenuIndex);
             }
         });
+        
+        btnBottomMultiSelectMenu.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                BottomMenu.show(multiSelectMenuText)
+                        .setMessage("这里是权限确认的文本说明,这是一个演示菜单")
+                        .setTitle("获得权限标题")
+                        .setOnMenuItemClickListener(new OnMenuItemSelectListener<BottomMenu>() {
+                            @Override
+                            public void onMultiItemSelect(BottomMenu dialog, CharSequence[] text, int[] index) {
+                                multiSelectMenuResultCache = "";
+                                for (CharSequence c : text) {
+                                    multiSelectMenuResultCache = multiSelectMenuResultCache + " " + c;
+                                }
+                                selectMenuIndexArray = index;
+                            }
+                        })
+                        .setOkButton("确定", new OnDialogButtonClickListener<BottomDialog>() {
+                            @Override
+                            public boolean onClick(BottomDialog baseDialog, View v) {
+                                PopTip.show("已选择:" + multiSelectMenuResultCache);
+                                return false;
+                            }
+                        })
+                        .setSelection(selectMenuIndexArray);
+            }
+        });
     }
     
     private void initFullScreenLoginDemo(final FullScreenDialog fullScreenDialog) {

+ 16 - 0
app/src/main/res/layout/activity_main.xml

@@ -509,6 +509,22 @@
                         android:textSize="13dp"
                         android:textStyle="bold" />
 
+                    <TextView
+                        android:id="@+id/btn_bottom_multiSelect_menu"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_margin="5dp"
+                        android:background="@drawable/rect_button"
+                        android:paddingLeft="15dp"
+                        android:paddingTop="10dp"
+                        android:paddingRight="15dp"
+                        android:paddingBottom="10dp"
+                        android:text="底部多选菜单"
+                        android:textColor="@color/white"
+                        android:textSize="13dp"
+                        android:textStyle="bold" />
+
+
                 </LinearLayout>
 
                 <TextView

+ 1 - 1
gradle.properties

@@ -18,5 +18,5 @@ android.useAndroidX=true
 # Automatically convert third-party libraries to use AndroidX
 android.enableJetifier=true
 
-BUILD_VERSION=0.0.37
+BUILD_VERSION=0.0.37.beta1
 BUILD_VERSION_INT=37