Browse Source

0.0.50.beta38
- 修复了 PopMenu 设置菜单文字颜色无效的问题;

Kongzue 2 days ago
parent
commit
761970ab30

+ 0 - 26
.github/workflows/android.yml

@@ -1,26 +0,0 @@
-name: Android CI
-
-on:
-  push:
-    branches: [ "master" ]
-  pull_request:
-    branches: [ "master" ]
-
-jobs:
-  build:
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v4
-    - name: set up JDK 11
-      uses: actions/setup-java@v4
-      with:
-        java-version: '11'
-        distribution: 'temurin'
-        cache: gradle
-
-    - name: Grant execute permission for gradlew
-      run: chmod +x gradlew
-    - name: Build with Gradle
-      run: ./gradlew build

+ 16 - 0
DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopMenu.java

@@ -1555,6 +1555,11 @@ public class PopMenu extends BaseDialog {
         return this;
     }
 
+    public PopMenu enableAllMenu() {
+        menuUsability.clear();
+        return this;
+    }
+
     public PopMenu disableMenu(int... menuIndex) {
         for (int i : menuIndex) {
             menuUsability.put(i, false);
@@ -1586,6 +1591,17 @@ public class PopMenu extends BaseDialog {
         return this;
     }
 
+    public PopMenu disableAllMenu() {
+        if (menuList != null && !menuList.isEmpty()) {
+            for (int i = 0; i < menuList.size(); i++) {
+                menuUsability.put(i, false);
+            }
+        } else {
+            error("DialogX: " + dialogKey() + " .disableAllMenu()执行失败,请先初始化菜单项 menuList");
+        }
+        return this;
+    }
+
     public boolean isMenuItemEnable(int index) {
         Boolean enabled = menuUsability.get(index);
         if (enabled == null) {

+ 3 - 3
DialogX/src/main/java/com/kongzue/dialogx/util/PopMenuArrayAdapter.java

@@ -117,13 +117,13 @@ public class PopMenuArrayAdapter extends BaseAdapter {
             }
         }
         
+        int textColor = popMenu.isLightTheme() ? R.color.black90 : R.color.white90;
+        viewHolder.txtDialogxMenuText.setTextColor(context.getResources().getColor(textColor));
+
         if (popMenu.getMenuTextInfo() != null) {
             useTextInfo(viewHolder.txtDialogxMenuText, popMenu.getMenuTextInfo());
         }
         
-        int textColor = popMenu.isLightTheme() ? R.color.black90 : R.color.white90;
-        viewHolder.txtDialogxMenuText.setTextColor(context.getResources().getColor(textColor));
-        
         if (popMenu.getOnIconChangeCallBack() != null) {
             if (popMenu.getOnIconChangeCallBack() instanceof MenuIconAdapter) {
                 boolean result = ((MenuIconAdapter) popMenu.getOnIconChangeCallBack()).applyIcon(popMenu, position, menuList.get(position).toString(), viewHolder.imgDialogxMenuIcon);

+ 6 - 1
app/src/main/java/com/kongzue/dialogxdemo/activity/MainActivity.java

@@ -78,6 +78,7 @@ import com.kongzue.dialogx.interfaces.MenuItemTextInfoInterceptor;
 import com.kongzue.dialogx.interfaces.OnBackPressedListener;
 import com.kongzue.dialogx.interfaces.OnBackgroundMaskClickListener;
 import com.kongzue.dialogx.interfaces.OnBindView;
+import com.kongzue.dialogx.interfaces.OnBindingView;
 import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener;
 import com.kongzue.dialogx.interfaces.OnIconChangeCallBack;
 import com.kongzue.dialogx.interfaces.OnInputDialogButtonClickListener;
@@ -447,10 +448,14 @@ public class MainActivity extends BaseActivity {
         btnContextMenu.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                PopMenu.show("添加", "编辑", "删除", "分享").disableMenu("编辑", "删除").setIconResIds(R.mipmap.img_dialogx_demo_add, R.mipmap.img_dialogx_demo_edit, R.mipmap.img_dialogx_demo_delete, R.mipmap.img_dialogx_demo_share).setOnMenuItemClickListener(new OnMenuItemClickListener<PopMenu>() {
+                PopMenu.show("添加", "编辑", "删除", "分享")
+                        .disableMenu("编辑", "删除")
+                        .setIconResIds(R.mipmap.img_dialogx_demo_add, R.mipmap.img_dialogx_demo_edit, R.mipmap.img_dialogx_demo_delete, R.mipmap.img_dialogx_demo_share)
+                        .setOnMenuItemClickListener(new OnMenuItemClickListener<PopMenu>() {
                     @Override
                     public boolean onClick(PopMenu dialog, CharSequence text, int index) {
                         if (index == 0) {
+                            dialog.enableAllMenu();
                             dialog.setMenuList(new String[]{"产品A", "产品B", "产品C"});
                             return true;
                         }