kunfei 4 лет назад
Родитель
Сommit
40b29466bf

+ 10 - 0
app/src/main/java/io/legado/app/utils/MenuExtensions.kt

@@ -1,9 +1,12 @@
+@file:Suppress("unused")
+
 package io.legado.app.utils
 
 import android.annotation.SuppressLint
 import android.content.Context
 import android.view.Menu
 import android.view.MenuItem
+import android.widget.ImageButton
 import androidx.appcompat.view.menu.MenuBuilder
 import androidx.appcompat.view.menu.MenuItemImpl
 import androidx.appcompat.view.menu.SubMenuBuilder
@@ -55,4 +58,11 @@ fun Menu.applyOpenTint(context: Context) {
             item.icon?.setTintMutate(defaultTextColor)
         }
     }
+}
+
+fun MenuItem.setOnLongClickListener(menu: Menu, function: () -> (Unit)) {
+    setActionView(R.layout.view_action_button)
+    actionView.findViewById<ImageButton>(R.id.item).setImageDrawable(icon)
+    actionView.setOnLongClickListener { function.invoke(); true }
+    actionView.setOnClickListener { menu.performIdentifierAction(itemId, 0) }
 }

+ 8 - 0
app/src/main/res/layout/view_action_button.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/item"
+    style="?android:attr/actionButtonStyle"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    tools:ignore="ContentDescription" />