Forráskód Böngészése

fix bugs & add selection in BottomMenu

kongzue 4 éve
szülő
commit
7c913deb35
44 módosított fájl, 555 hozzáadás és 51 törlés
  1. BIN
      DialogX/libs/DialogXInterface.jar
  2. 14 2
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomMenu.java
  3. 27 0
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopTip.java
  4. 12 2
      DialogX/src/main/java/com/kongzue/dialogx/style/MaterialStyle.java
  5. 39 0
      DialogX/src/main/java/com/kongzue/dialogx/util/NormalMenuArrayAdapter.java
  6. 11 0
      DialogX/src/main/res/layout/item_dialogx_material_bottom_menu_normal_text.xml
  7. BIN
      DialogX/src/main/res/mipmap-xxhdpi/img_dialogx_bottom_menu_material_item_selection.png
  8. BIN
      DialogXIOSStyle/libs/DialogXInterface.jar
  9. 11 2
      DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/IOSStyle.java
  10. 0 0
      DialogXIOSStyle/src/main/res/anim/anim_dialogx_ios_top_exit.xml
  11. 16 4
      DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_bottom_dark.xml
  12. 16 4
      DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_bottom_light.xml
  13. 18 6
      DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_center_dark.xml
  14. 18 6
      DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_center_light.xml
  15. 18 6
      DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_top_dark.xml
  16. 18 6
      DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_top_light.xml
  17. 2 1
      DialogXIOSStyle/src/main/res/layout/layout_dialogx_bottom_ios.xml
  18. 2 1
      DialogXIOSStyle/src/main/res/layout/layout_dialogx_bottom_ios_dark.xml
  19. BIN
      DialogXIOSStyle/src/main/res/mipmap-xxhdpi/img_dialogx_bottom_menu_ios_item_selection.png
  20. 4 0
      DialogXInterface/src/main/java/com/kongzue/dialogx/interfaces/DialogXStyle.java
  21. BIN
      DialogXKongzueStyle/libs/DialogXInterface.jar
  22. 31 1
      DialogXKongzueStyle/src/main/java/com/kongzue/dialogx/style/KongzueStyle.java
  23. 7 0
      DialogXKongzueStyle/src/main/res/anim/anim_dialogx_kongzue_top_enter.xml
  24. 7 0
      DialogXKongzueStyle/src/main/res/anim/anim_dialogx_kongzue_top_exit.xml
  25. 11 0
      DialogXKongzueStyle/src/main/res/layout/item_dialogx_kongzue_bottom_menu_normal_text.xml
  26. 11 0
      DialogXKongzueStyle/src/main/res/layout/item_dialogx_kongzue_bottom_menu_normal_text_dark.xml
  27. 73 0
      DialogXKongzueStyle/src/main/res/layout/layout_dialogx_poptip_kongzue.xml
  28. 73 0
      DialogXKongzueStyle/src/main/res/layout/layout_dialogx_poptip_kongzue_dark.xml
  29. BIN
      DialogXKongzueStyle/src/main/res/mipmap-xxhdpi/img_dialogx_bottom_menu_kongzue_item_selection.png
  30. 3 0
      DialogXKongzueStyle/src/main/res/values/colors.xml
  31. BIN
      DialogXMIUIStyle/libs/DialogXInterface.jar
  32. 10 0
      DialogXMIUIStyle/src/main/java/com/kongzue/dialogx/style/MIUIStyle.java
  33. 11 0
      DialogXMIUIStyle/src/main/res/drawable/rect_dialogx_miui_button_top_light.xml
  34. 12 0
      DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_bottom_dark.xml
  35. 12 0
      DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_bottom_light.xml
  36. 11 0
      DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_center_dark.xml
  37. 12 0
      DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_center_light.xml
  38. 12 0
      DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_top_dark.xml
  39. 12 0
      DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_top_light.xml
  40. 6 3
      DialogXMIUIStyle/src/main/res/layout/layout_dialogx_bottom_miui.xml
  41. 5 2
      DialogXMIUIStyle/src/main/res/layout/layout_dialogx_bottom_miui_dark.xml
  42. BIN
      DialogXMIUIStyle/src/main/res/mipmap-xxhdpi/img_dialogx_bottom_menu_miui_item_selection.png
  43. 2 0
      DialogXMIUIStyle/src/main/res/values/colors.xml
  44. 8 5
      app/src/main/java/com/kongzue/dialogxdemo/MainActivity.java

BIN
DialogX/libs/DialogXInterface.jar


+ 14 - 2
DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomMenu.java

@@ -37,6 +37,7 @@ import static android.view.View.OVER_SCROLL_NEVER;
 public class BottomMenu extends BottomDialog {
     
     protected BottomMenu me = this;
+    protected int selectionIndex = -1;
     
     protected OnMenuItemClickListener<BottomMenu> onMenuItemClickListener;
     
@@ -90,6 +91,7 @@ public class BottomMenu extends BottomDialog {
     @Override
     protected void onDialogInit(final DialogImpl dialog) {
         if (dialog != null) {
+            dialog.boxList.setVisibility(View.VISIBLE);
             
             if (!isAllowInterceptTouch()) {
                 dialog.bkg.setMaxHeight((int) bottomDialogMaxHeight);
@@ -126,8 +128,7 @@ public class BottomMenu extends BottomDialog {
                 }
             });
             if (style.overrideBottomDialogRes() != null) {
-                if (style.overrideBottomDialogRes().overrideMenuItemLayout(true, 0, 0,false) != 0) {
-                    log("@@@"+style.overrideBottomDialogRes().overrideMenuItemLayout(true, 0, 0,false) );
+                if (style.overrideBottomDialogRes().overrideMenuItemLayout(true, 0, 0, false) != 0) {
                     listView.setSelector(R.color.empty);
                 }
             }
@@ -380,4 +381,15 @@ public class BottomMenu extends BottomDialog {
         refreshUI();
         return this;
     }
+    
+    public int getSelection() {
+        return selectionIndex;
+    }
+    
+    public BottomMenu setSelection(int selectionIndex) {
+        this.selectionIndex = selectionIndex;
+        menuListAdapter = null;
+        refreshUI();
+        return this;
+    }
 }

+ 27 - 0
DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopTip.java

@@ -56,6 +56,7 @@ public class PopTip extends BaseDialog {
     private View dialogView;
     protected DialogXStyle.PopTipSettings.ALIGN align;
     protected OnDialogButtonClickListener onButtonClickListener;
+    protected OnDialogButtonClickListener onPopTipClickListener;
     protected boolean autoTintIconInLightOrDarkMode = true;
     
     protected int iconResId;
@@ -313,6 +314,8 @@ public class PopTip extends BaseDialog {
                 public void onChange(Rect unsafeRect) {
                     if (align == DialogXStyle.PopTipSettings.ALIGN.TOP) {
                         boxBody.setY(unsafeRect.top);
+                    } else if (align == DialogXStyle.PopTipSettings.ALIGN.TOP_INSIDE) {
+                        boxBody.setPadding(0, unsafeRect.top, 0, 0);
                     }
                 }
             });
@@ -379,6 +382,20 @@ public class PopTip extends BaseDialog {
             } else {
                 imgDialogxPopIcon.setVisibility(View.GONE);
             }
+            
+            if (onPopTipClickListener != null) {
+                boxBody.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        if (!onPopTipClickListener.onClick(me, v)){
+                            dismiss();
+                        }
+                    }
+                });
+            }else{
+                boxBody.setOnClickListener(null);
+                boxBody.setClickable(false);
+            }
         }
         
         @Override
@@ -563,6 +580,16 @@ public class PopTip extends BaseDialog {
         return this;
     }
     
+    public OnDialogButtonClickListener getOnPopTipClickListener() {
+        return onPopTipClickListener;
+    }
+    
+    public PopTip setOnPopTipClickListener(OnDialogButtonClickListener onPopTipClickListener) {
+        this.onPopTipClickListener = onPopTipClickListener;
+        refreshUI();
+        return this;
+    }
+    
     public int getBackgroundColor() {
         return backgroundColor;
     }

+ 12 - 2
DialogX/src/main/java/com/kongzue/dialogx/style/MaterialStyle.java

@@ -158,6 +158,16 @@ public class MaterialStyle implements DialogXStyle {
                 return 0;
             }
     
+            @Override
+            public int overrideSelectionMenuBackgroundColor(boolean light) {
+                return 0;
+            }
+    
+            @Override
+            public boolean selectionImageTint(boolean light) {
+                return true;
+            }
+    
         };
     }
     
@@ -175,12 +185,12 @@ public class MaterialStyle implements DialogXStyle {
             }
 
             @Override
-            public int enterAnimResId(boolean b) {
+            public int enterAnimResId(boolean light) {
                 return R.anim.anim_dialogx_default_enter;
             }
 
             @Override
-            public int exitAnimResId(boolean b) {
+            public int exitAnimResId(boolean light) {
                 return R.anim.anim_dialogx_default_exit;
             }
         };

+ 39 - 0
DialogX/src/main/java/com/kongzue/dialogx/util/NormalMenuArrayAdapter.java

@@ -2,6 +2,7 @@ package com.kongzue.dialogx.util;
 
 import android.content.Context;
 import android.content.res.ColorStateList;
+import android.graphics.drawable.StateListDrawable;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -39,6 +40,7 @@ public class NormalMenuArrayAdapter extends BaseAdapter {
     class ViewHolder {
         ImageView imgDialogxMenuIcon;
         TextView txtDialogxMenuText;
+        ImageView imgDialogxMenuSelection;
     }
     
     @Override
@@ -64,6 +66,7 @@ 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) {
@@ -77,11 +80,40 @@ public class NormalMenuArrayAdapter extends BaseAdapter {
                         }
                     }
                 }
+                
+                overrideSelectionBackgroundColorRes = bottomMenu.getStyle().overrideBottomDialogRes().overrideSelectionMenuBackgroundColor(bottomMenu.isLightTheme());
             }
             convertView = mInflater.inflate(resourceId, null);
             
             viewHolder.imgDialogxMenuIcon = convertView.findViewById(R.id.img_dialogx_menu_icon);
             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) {
+                        viewHolder.imgDialogxMenuSelection.setVisibility(View.VISIBLE);
+                    } else {
+                        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 {
+                convertView.setBackgroundTintList(null);
+            }
             
             convertView.setTag(viewHolder);
         } else {
@@ -99,6 +131,13 @@ public class NormalMenuArrayAdapter extends BaseAdapter {
         if (null != text) {
             viewHolder.txtDialogxMenuText.setText(text);
             viewHolder.txtDialogxMenuText.setTextColor(context.getResources().getColor(textColor));
+            if (viewHolder.imgDialogxMenuSelection != null) {
+                if (bottomMenu.getStyle().overrideBottomDialogRes()!=null && bottomMenu.getStyle().overrideBottomDialogRes().selectionImageTint(bottomMenu.isLightTheme())) {
+                    viewHolder.imgDialogxMenuSelection.setImageTintList(ColorStateList.valueOf(context.getResources().getColor(textColor)));
+                }else{
+                    viewHolder.imgDialogxMenuSelection.setImageTintList(null);
+                }
+            }
             
             if (bottomMenu.getOnIconChangeCallBack() != null) {
                 int resId = bottomMenu.getOnIconChangeCallBack().getIcon(bottomMenu, position, text.toString());

+ 11 - 0
DialogX/src/main/res/layout/item_dialogx_material_bottom_menu_normal_text.xml

@@ -22,11 +22,22 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:gravity="left|center_vertical"
+            android:layout_weight="1"
             android:singleLine="true"
             android:text=""
             android:textColor="@color/black90"
             android:textSize="16dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="-5dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_material_item_selection"
+            android:layout_centerVertical="true"
+            android:padding="5dp"/>
+
     </LinearLayout>
 
 </RelativeLayout>

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


BIN
DialogXIOSStyle/libs/DialogXInterface.jar


+ 11 - 2
DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/IOSStyle.java

@@ -200,7 +200,16 @@ public class IOSStyle implements DialogXStyle {
                     }
                 }
             }
-            
+    
+            @Override
+            public int overrideSelectionMenuBackgroundColor(boolean light) {
+                return 0;
+            }
+    
+            @Override
+            public boolean selectionImageTint(boolean light) {
+                return true;
+            }
         };
     }
     
@@ -224,7 +233,7 @@ public class IOSStyle implements DialogXStyle {
             
             @Override
             public int exitAnimResId(boolean b) {
-                return R.anim.anim_dialogx_top_ios_exit;
+                return R.anim.anim_dialogx_ios_top_exit;
             }
         };
     }

+ 0 - 0
DialogXIOSStyle/src/main/res/anim/anim_dialogx_top_ios_exit.xml → DialogXIOSStyle/src/main/res/anim/anim_dialogx_ios_top_exit.xml


+ 16 - 4
DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_bottom_dark.xml

@@ -5,16 +5,14 @@
 
     <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="55dp"
-        android:paddingLeft="20dp"
-        android:paddingRight="20dp">
+        android:layout_height="55dp">
 
         <ImageView
             android:id="@+id/img_dialogx_menu_icon"
             android:layout_width="35dp"
             android:layout_height="35dp"
             android:layout_centerVertical="true"
-            android:layout_marginLeft="-5dp"
+            android:layout_marginLeft="15dp"
             android:layout_marginRight="10dp"
             android:padding="5dp" />
 
@@ -24,11 +22,25 @@
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
             android:gravity="center"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp"
             android:singleLine="true"
             android:text="asdadasda"
             android:textColor="@color/dialogxIOSBlue"
             android:textSize="19dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:padding="9dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_ios_item_selection"
+            android:visibility="gone" />
+
     </RelativeLayout>
 
 </RelativeLayout>

+ 16 - 4
DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_bottom_light.xml

@@ -5,16 +5,14 @@
 
     <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="55dp"
-        android:paddingLeft="20dp"
-        android:paddingRight="20dp">
+        android:layout_height="55dp">
 
         <ImageView
             android:id="@+id/img_dialogx_menu_icon"
             android:layout_width="35dp"
             android:layout_height="35dp"
             android:layout_centerVertical="true"
-            android:layout_marginLeft="-5dp"
+            android:layout_marginLeft="15dp"
             android:layout_marginRight="10dp"
             android:padding="5dp" />
 
@@ -24,11 +22,25 @@
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
             android:gravity="center"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp"
             android:singleLine="true"
             android:text="asdadasda"
             android:textColor="@color/dialogxIOSBlue"
             android:textSize="19dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:padding="9dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_ios_item_selection"
+            android:visibility="gone" />
+
     </RelativeLayout>
 
 </RelativeLayout>

+ 18 - 6
DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_center_dark.xml

@@ -5,18 +5,16 @@
 
     <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="55dp"
-        android:paddingLeft="20dp"
-        android:paddingRight="20dp">
+        android:layout_height="55dp">
 
         <ImageView
             android:id="@+id/img_dialogx_menu_icon"
             android:layout_width="35dp"
             android:layout_height="35dp"
             android:layout_centerVertical="true"
+            android:layout_marginLeft="15dp"
             android:layout_marginRight="10dp"
-            android:layout_marginLeft="-5dp"
-            android:padding="5dp"/>
+            android:padding="5dp" />
 
         <TextView
             android:id="@+id/txt_dialogx_menu_text"
@@ -24,11 +22,25 @@
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
             android:gravity="center"
-            android:textColor="@color/dialogxIOSBlue"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp"
             android:singleLine="true"
             android:text="asdadasda"
+            android:textColor="@color/dialogxIOSBlue"
             android:textSize="19dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:padding="9dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_ios_item_selection"
+            android:visibility="gone" />
+
     </RelativeLayout>
 
 </RelativeLayout>

+ 18 - 6
DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_center_light.xml

@@ -5,18 +5,16 @@
 
     <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="55dp"
-        android:paddingLeft="20dp"
-        android:paddingRight="20dp">
+        android:layout_height="55dp">
 
         <ImageView
             android:id="@+id/img_dialogx_menu_icon"
             android:layout_width="35dp"
             android:layout_height="35dp"
             android:layout_centerVertical="true"
+            android:layout_marginLeft="15dp"
             android:layout_marginRight="10dp"
-            android:layout_marginLeft="-5dp"
-            android:padding="5dp"/>
+            android:padding="5dp" />
 
         <TextView
             android:id="@+id/txt_dialogx_menu_text"
@@ -24,11 +22,25 @@
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
             android:gravity="center"
-            android:textColor="@color/dialogxIOSBlue"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp"
             android:singleLine="true"
             android:text="asdadasda"
+            android:textColor="@color/dialogxIOSBlue"
             android:textSize="19dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:padding="9dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_ios_item_selection"
+            android:visibility="gone" />
+
     </RelativeLayout>
 
 </RelativeLayout>

+ 18 - 6
DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_top_dark.xml

@@ -5,18 +5,16 @@
 
     <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="55dp"
-        android:paddingLeft="20dp"
-        android:paddingRight="20dp">
+        android:layout_height="55dp">
 
         <ImageView
             android:id="@+id/img_dialogx_menu_icon"
             android:layout_width="35dp"
             android:layout_height="35dp"
             android:layout_centerVertical="true"
+            android:layout_marginLeft="15dp"
             android:layout_marginRight="10dp"
-            android:layout_marginLeft="-5dp"
-            android:padding="5dp"/>
+            android:padding="5dp" />
 
         <TextView
             android:id="@+id/txt_dialogx_menu_text"
@@ -24,11 +22,25 @@
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
             android:gravity="center"
-            android:textColor="@color/dialogxIOSBlue"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp"
             android:singleLine="true"
             android:text="asdadasda"
+            android:textColor="@color/dialogxIOSBlue"
             android:textSize="19dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:padding="9dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_ios_item_selection"
+            android:visibility="gone" />
+
     </RelativeLayout>
 
 </RelativeLayout>

+ 18 - 6
DialogXIOSStyle/src/main/res/layout/item_dialogx_ios_bottom_menu_top_light.xml

@@ -5,18 +5,16 @@
 
     <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="55dp"
-        android:paddingLeft="20dp"
-        android:paddingRight="20dp">
+        android:layout_height="55dp">
 
         <ImageView
             android:id="@+id/img_dialogx_menu_icon"
             android:layout_width="35dp"
             android:layout_height="35dp"
             android:layout_centerVertical="true"
+            android:layout_marginLeft="15dp"
             android:layout_marginRight="10dp"
-            android:layout_marginLeft="-5dp"
-            android:padding="5dp"/>
+            android:padding="5dp" />
 
         <TextView
             android:id="@+id/txt_dialogx_menu_text"
@@ -24,11 +22,25 @@
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
             android:gravity="center"
-            android:textColor="@color/dialogxIOSBlue"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp"
             android:singleLine="true"
             android:text="asdadasda"
+            android:textColor="@color/dialogxIOSBlue"
             android:textSize="19dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:padding="9dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_ios_item_selection"
+            android:visibility="gone" />
+
     </RelativeLayout>
 
 </RelativeLayout>

+ 2 - 1
DialogXIOSStyle/src/main/res/layout/layout_dialogx_bottom_ios.xml

@@ -30,6 +30,7 @@
                 <com.kongzue.dialogx.util.views.MaxRelativeLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:minHeight="40dp"
                     android:layout_weight="1"
                     android:tag="body">
 
@@ -74,7 +75,7 @@
                                     android:layout_height="wrap_content"
                                     android:layout_marginHorizontal="20dp"
                                     android:gravity="center_horizontal"
-                                    android:paddingVertical="13dp"
+                                    android:paddingVertical="7dp"
                                     android:text="This is content text."
                                     android:textColor="@color/dialogxIOSTipTextLight"
                                     android:textSize="12dp" />

+ 2 - 1
DialogXIOSStyle/src/main/res/layout/layout_dialogx_bottom_ios_dark.xml

@@ -30,6 +30,7 @@
                 <com.kongzue.dialogx.util.views.MaxRelativeLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:minHeight="40dp"
                     android:layout_weight="1"
                     android:tag="body">
 
@@ -46,7 +47,7 @@
                             android:layout_gravity="center_horizontal"
                             android:gravity="center"
                             android:paddingHorizontal="20dp"
-                            android:paddingTop="13dp"
+                            android:paddingVertical="7dp"
                             android:text="Title"
                             android:textColor="@color/dialogxIOSTipTextDark"
                             android:textSize="12dp"

BIN
DialogXIOSStyle/src/main/res/mipmap-xxhdpi/img_dialogx_bottom_menu_ios_item_selection.png


+ 4 - 0
DialogXInterface/src/main/java/com/kongzue/dialogx/interfaces/DialogXStyle.java

@@ -87,6 +87,10 @@ public interface DialogXStyle {
         float overrideBottomDialogMaxHeight();
         
         int overrideMenuItemLayout(boolean light, int index, int count, boolean isContentVisibility);
+        
+        int overrideSelectionMenuBackgroundColor(boolean light);
+        
+        boolean selectionImageTint(boolean light);
     }
     
     interface PopTipSettings {

BIN
DialogXKongzueStyle/libs/DialogXInterface.jar


+ 31 - 1
DialogXKongzueStyle/src/main/java/com/kongzue/dialogx/style/KongzueStyle.java

@@ -127,11 +127,41 @@ public class KongzueStyle implements DialogXStyle {
             public int overrideMenuItemLayout(boolean light, int index, int count, boolean isContentVisibility) {
                 return light ? R.layout.item_dialogx_kongzue_bottom_menu_normal_text : R.layout.item_dialogx_kongzue_bottom_menu_normal_text_dark;
             }
+    
+            @Override
+            public int overrideSelectionMenuBackgroundColor(boolean light) {
+                return 0;
+            }
+    
+            @Override
+            public boolean selectionImageTint(boolean light) {
+                return true;
+            }
         };
     }
     
     @Override
     public PopTipSettings popTipSettings() {
-        return null;
+        return new PopTipSettings() {
+            @Override
+            public int layout(boolean light) {
+                return light?R.layout.layout_dialogx_poptip_kongzue :R.layout.layout_dialogx_poptip_kongzue_dark;
+            }
+            
+            @Override
+            public ALIGN align() {
+                return ALIGN.TOP_INSIDE;
+            }
+            
+            @Override
+            public int enterAnimResId(boolean b) {
+                return R.anim.anim_dialogx_kongzue_top_enter;
+            }
+            
+            @Override
+            public int exitAnimResId(boolean b) {
+                return R.anim.anim_dialogx_kongzue_top_exit;
+            }
+        };
     }
 }

+ 7 - 0
DialogXKongzueStyle/src/main/res/anim/anim_dialogx_kongzue_top_enter.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="500"
+        android:fromYDelta="-100%p"
+        android:toYDelta="0" />
+</set>

+ 7 - 0
DialogXKongzueStyle/src/main/res/anim/anim_dialogx_kongzue_top_exit.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="500"
+        android:fromYDelta="0"
+        android:toYDelta="-100%p"/>
+</set>

+ 11 - 0
DialogXKongzueStyle/src/main/res/layout/item_dialogx_kongzue_bottom_menu_normal_text.xml

@@ -29,6 +29,17 @@
             android:textColor="@color/black90"
             android:textSize="16dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="-10dp"
+            android:padding="9dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_kongzue_item_selection"/>
+
     </RelativeLayout>
 
 </RelativeLayout>

+ 11 - 0
DialogXKongzueStyle/src/main/res/layout/item_dialogx_kongzue_bottom_menu_normal_text_dark.xml

@@ -29,6 +29,17 @@
             android:textColor="@color/black90"
             android:textSize="16dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="-10dp"
+            android:padding="9dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_kongzue_item_selection"/>
+
     </RelativeLayout>
 
 </RelativeLayout>

+ 73 - 0
DialogXKongzueStyle/src/main/res/layout/layout_dialogx_poptip_kongzue.xml

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/box_root"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:id="@+id/box_body"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="100dp"
+        android:background="@color/white"
+        android:elevation="100dp"
+        android:gravity="center_vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="50dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:id="@+id/img_dialogx_pop_icon"
+                android:layout_width="26dp"
+                android:layout_height="26dp"
+                android:layout_marginLeft="15dp"
+                android:visibility="gone"
+                android:layout_marginRight="-10dp" />
+
+            <TextView
+                android:id="@+id/txt_dialogx_pop_text"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="20dp"
+                android:layout_marginRight="15dp"
+                android:gravity="left|center_vertical"
+                android:singleLine="true"
+                android:text="Sure?"
+                android:textColor="@color/black"
+                android:textSize="14dp" />
+
+            <RelativeLayout
+                android:id="@+id/box_custom"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:visibility="gone" />
+
+            <Space
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1" />
+
+            <TextView
+                android:id="@+id/txt_dialogx_button"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_marginHorizontal="5dp"
+                android:layout_marginVertical="5dp"
+                android:gravity="left|center_vertical"
+                android:paddingHorizontal="10dp"
+                android:visibility="gone"
+                android:singleLine="true"
+                android:text="Dismiss"
+                android:textColor="@color/dialogxColorBlue"
+                android:textSize="14dp" />
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout>

+ 73 - 0
DialogXKongzueStyle/src/main/res/layout/layout_dialogx_poptip_kongzue_dark.xml

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/box_root"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:id="@+id/box_body"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="100dp"
+        android:background="@color/dialogxKongzuePopDarkBkgColor"
+        android:elevation="100dp"
+        android:gravity="center_vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="50dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:id="@+id/img_dialogx_pop_icon"
+                android:layout_width="26dp"
+                android:layout_height="26dp"
+                android:layout_marginLeft="15dp"
+                android:visibility="gone"
+                android:layout_marginRight="-10dp" />
+
+            <TextView
+                android:id="@+id/txt_dialogx_pop_text"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="20dp"
+                android:layout_marginRight="15dp"
+                android:gravity="left|center_vertical"
+                android:singleLine="true"
+                android:text="Sure?"
+                android:textColor="@color/white"
+                android:textSize="14dp" />
+
+            <RelativeLayout
+                android:id="@+id/box_custom"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:visibility="gone" />
+
+            <Space
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1" />
+
+            <TextView
+                android:id="@+id/txt_dialogx_button"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_marginHorizontal="5dp"
+                android:layout_marginVertical="5dp"
+                android:gravity="left|center_vertical"
+                android:paddingHorizontal="10dp"
+                android:visibility="gone"
+                android:singleLine="true"
+                android:text="Dismiss"
+                android:textColor="@color/dialogxPopButtonBlueDark"
+                android:textSize="14dp" />
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout>

BIN
DialogXKongzueStyle/src/main/res/mipmap-xxhdpi/img_dialogx_bottom_menu_kongzue_item_selection.png


+ 3 - 0
DialogXKongzueStyle/src/main/res/values/colors.xml

@@ -46,4 +46,7 @@
     <color name="dialogxKongzueDarkButtonMenuBackgroundColor">#0DFFFFFF</color>
     <color name="dialogxKongzueDarkButtonSplitLineColor">#26FFFFFF</color>
 
+    <color name="dialogxPopButtonBlueDark">#86B3D6</color>
+    <color name="dialogxKongzuePopDarkBkgColor">#343434</color>
+
 </resources>

BIN
DialogXMIUIStyle/libs/DialogXInterface.jar


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

@@ -142,6 +142,16 @@ public class MIUIStyle implements DialogXStyle {
                     }
                 }
             }
+            
+            @Override
+            public int overrideSelectionMenuBackgroundColor(boolean light) {
+                return light ? R.color.dialogxMIUIItemSelectionBkg : R.color.dialogxMIUIItemSelectionBkgDark;
+            }
+            
+            @Override
+            public boolean selectionImageTint(boolean light) {
+                return false;
+            }
         };
     }
     

+ 11 - 0
DialogXMIUIStyle/src/main/res/drawable/rect_dialogx_miui_button_top_light.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+
+    <solid android:color="@color/white"/>
+
+    <corners
+        android:topRightRadius="15dp"
+        android:topLeftRadius="15dp"/>
+
+</shape>

+ 12 - 0
DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_bottom_dark.xml

@@ -25,12 +25,24 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
+            android:layout_weight="1"
             android:singleLine="true"
             android:text="MenuText"
             android:textColor="@color/dialogxMIUITextDark"
             android:textSize="16dp"
             android:textStyle="bold" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="-5dp"
+            android:padding="5dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_miui_item_selection"
+            android:visibility="gone" />
+
     </LinearLayout>
 
 </RelativeLayout>

+ 12 - 0
DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_bottom_light.xml

@@ -24,6 +24,7 @@
             android:id="@+id/txt_dialogx_menu_text"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_weight="1"
             android:layout_centerInParent="true"
             android:singleLine="true"
             android:text="MenuText"
@@ -31,6 +32,17 @@
             android:textSize="16dp"
             android:textStyle="bold" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="-5dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_miui_item_selection"
+            android:visibility="gone"
+            android:layout_centerVertical="true"
+            android:padding="5dp"/>
+
     </LinearLayout>
 
 </RelativeLayout>

+ 11 - 0
DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_center_dark.xml

@@ -31,6 +31,17 @@
             android:text="MenuText"
             android:textSize="16dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="-5dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_miui_item_selection"
+            android:visibility="gone"
+            android:layout_centerVertical="true"
+            android:padding="5dp"/>
+
     </LinearLayout>
 
 </RelativeLayout>

+ 12 - 0
DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_center_light.xml

@@ -25,12 +25,24 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
+            android:layout_weight="1"
             android:textColor="@color/black"
             android:textStyle="bold"
             android:singleLine="true"
             android:text="MenuText"
             android:textSize="16dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="-5dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_miui_item_selection"
+            android:visibility="gone"
+            android:layout_centerVertical="true"
+            android:padding="5dp"/>
+
     </LinearLayout>
 
 </RelativeLayout>

+ 12 - 0
DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_top_dark.xml

@@ -25,12 +25,24 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
+            android:layout_weight="1"
             android:textStyle="bold"
             android:textColor="@color/black"
             android:singleLine="true"
             android:text="MenuText"
             android:textSize="16dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="-5dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_miui_item_selection"
+            android:visibility="gone"
+            android:layout_centerVertical="true"
+            android:padding="5dp"/>
+
     </LinearLayout>
 
 </RelativeLayout>

+ 12 - 0
DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_top_light.xml

@@ -24,6 +24,7 @@
             android:id="@+id/txt_dialogx_menu_text"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_weight="1"
             android:layout_centerInParent="true"
             android:textStyle="bold"
             android:textColor="@color/black"
@@ -31,6 +32,17 @@
             android:text="MenuText"
             android:textSize="16dp" />
 
+        <ImageView
+            android:id="@+id/img_dialogx_menu_selection"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="-5dp"
+            android:src="@mipmap/img_dialogx_bottom_menu_miui_item_selection"
+            android:visibility="gone"
+            android:layout_centerVertical="true"
+            android:padding="5dp"/>
+
     </LinearLayout>
 
 </RelativeLayout>

+ 6 - 3
DialogXMIUIStyle/src/main/res/layout/layout_dialogx_bottom_miui.xml

@@ -69,12 +69,15 @@
                         <RelativeLayout
                             android:id="@+id/box_custom"
                             android:layout_width="match_parent"
-                            android:layout_height="wrap_content"/>
+                            android:layout_height="wrap_content" />
 
                         <RelativeLayout
                             android:id="@+id/box_list"
                             android:layout_width="match_parent"
-                            android:layout_height="wrap_content"/>
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="10dp"
+                            android:layout_marginBottom="10dp"
+                            android:visibility="gone" />
 
                     </LinearLayout>
 
@@ -93,7 +96,7 @@
                     android:tag="cancel"
                     android:text="取消"
                     android:textColor="@color/black80"
-                    android:textSize="16dp"/>
+                    android:textSize="16dp" />
 
             </LinearLayout>
 

+ 5 - 2
DialogXMIUIStyle/src/main/res/layout/layout_dialogx_bottom_miui_dark.xml

@@ -69,12 +69,15 @@
                         <RelativeLayout
                             android:id="@+id/box_custom"
                             android:layout_width="match_parent"
-                            android:layout_height="wrap_content"/>
+                            android:layout_height="wrap_content" />
 
                         <RelativeLayout
                             android:id="@+id/box_list"
                             android:layout_width="match_parent"
-                            android:layout_height="wrap_content"/>
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="10dp"
+                            android:layout_marginBottom="10dp"
+                            android:visibility="gone" />
 
                     </LinearLayout>
 

BIN
DialogXMIUIStyle/src/main/res/mipmap-xxhdpi/img_dialogx_bottom_menu_miui_item_selection.png


+ 2 - 0
DialogXMIUIStyle/src/main/res/values/colors.xml

@@ -46,5 +46,7 @@
     <color name="dialogxMIUIButtonBlueNormalDark">#096CD1</color>
     <color name="dialogxMIUIButtonGrayNormalDark">#333335</color>
     <color name="dialogxMIUIButtonGrayPressDark">#29292B</color>
+    <color name="dialogxMIUIItemSelectionBkg">#1A0C84FF</color>
+    <color name="dialogxMIUIItemSelectionBkgDark">#6282BA</color>
 
 </resources>

+ 8 - 5
app/src/main/java/com/kongzue/dialogxdemo/MainActivity.java

@@ -48,8 +48,6 @@ import com.kongzue.dialogx.style.MIUIStyle;
 import com.kongzue.dialogx.style.MaterialStyle;
 import com.kongzue.dialogx.util.TextInfo;
 
-import java.util.ArrayList;
-
 @Layout(R.layout.activity_main)
 @DarkStatusBarTheme(true)
 @DarkNavigationBarTheme(true)
@@ -182,6 +180,8 @@ public class MainActivity extends BaseActivity {
     private TextView btnClose;
     private WebView webView;
     
+    private int selectMenuIndex;
+    
     @Override
     public void setEvents() {
         grpTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@@ -417,15 +417,18 @@ public class MainActivity extends BaseActivity {
                                 }
                             });
                 } else {
-                    BottomMenu.show(new String[]{"新标签页中打开", "稍后阅读", "复制链接网址"})
-                            .setMessage("http://www.kongzue.com/DialogX")
+                    BottomMenu.show(new String[]{"拒绝", "询问", "始终允许", "仅在使用中允许"})
+                            .setMessage("这里是权限确认的文本说明,这是一个演示菜单")
+                            .setTitle("获得权限标题")
                             .setOnMenuItemClickListener(new OnMenuItemClickListener<BottomMenu>() {
                                 @Override
                                 public boolean onClick(BottomMenu dialog, CharSequence text, int index) {
+                                    selectMenuIndex = index;
                                     toast(text);
                                     return false;
                                 }
-                            });
+                            })
+                            .setSelection(selectMenuIndex);
                 }
             }
         });