更新界面

This commit is contained in:
HapeLee committed 2025-09-25 03:26:19 +08:00
1 parent 331a609919
commit bbb17f2e95
3 files changed
+33 -32

No files matched your search

@@ -47,28 +47,37 @@ class SelectActionBar @JvmOverloads constructor(
} }
binding.btnRevertSelection.setOnClickListener { callBack?.revertSelection() } binding.btnRevertSelection.setOnClickListener { callBack?.revertSelection() }
binding.btnSelectActionMain.setOnClickListener { callBack?.onClickSelectBarMainAction() } binding.btnSelectActionMain.setOnClickListener { callBack?.onClickSelectBarMainAction() }
binding.ivMenuMore.setOnClickListener { selMenu?.show() } binding.ivMenuMore.addOnCheckedChangeListener { button, isChecked ->
if (isChecked) {
selMenu?.show()
}
}
applyNavigationBarPadding() applyNavigationBarPadding()
} }
} }
fun setMainActionText(text: String) = binding.run { fun setMainActionText(text: String) = binding.run {
btnSelectActionMain.text = text btnSelectActionMain.text = text
btnSelectActionMain.visible() btnSplit.visible()
} }
fun setMainActionText(@StringRes id: Int) = binding.run { fun setMainActionText(@StringRes id: Int) = binding.run {
btnSelectActionMain.setText(id) btnSelectActionMain.setText(id)
btnSelectActionMain.visible() btnSplit.visible()
} }
fun inflateMenu(@MenuRes resId: Int): Menu? { fun inflateMenu(@MenuRes resId: Int): Menu? {
selMenu = PopupMenu(context, binding.ivMenuMore) selMenu = PopupMenu(context, binding.ivMenuMore).apply {
selMenu?.inflate(resId) inflate(resId)
binding.ivMenuMore.visible()
setOnDismissListener {
binding.ivMenuMore.isChecked = false
}
}
return selMenu?.menu return selMenu?.menu
} }
fun setCallBack(callBack: CallBack) { fun setCallBack(callBack: CallBack) {
this.callBack = callBack this.callBack = callBack
} }
@@ -104,15 +113,8 @@ class SelectActionBar @JvmOverloads constructor(
private fun setMenuClickable(isClickable: Boolean) = binding.run { private fun setMenuClickable(isClickable: Boolean) = binding.run {
btnRevertSelection.isEnabled = isClickable btnRevertSelection.isEnabled = isClickable
btnRevertSelection.isClickable = isClickable btnRevertSelection.isClickable = isClickable
btnSelectActionMain.isEnabled = isClickable btnSplit.isEnabled = isClickable
btnSelectActionMain.isClickable = isClickable btnSplit.isClickable = isClickable
// if (isClickable) {
// ivMenuMore.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN)
// } else {
// ivMenuMore.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN)
// }
ivMenuMore.isEnabled = isClickable
ivMenuMore.isClickable = isClickable
} }
interface CallBack { interface CallBack {
@@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingHorizontal="8dp" android:paddingHorizontal="8dp"
@@ -17,40 +18,37 @@
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:text="@string/select_all" /> android:text="@string/select_all" />
<com.google.android.material.button.MaterialButtonGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btn_revert_selection" android:id="@+id/btn_revert_selection"
style="@style/Widget.Material3Expressive.Button.TonalButton" style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minWidth="0dp" android:minWidth="0dp"
android:layout_marginEnd="8dp"
android:text="@string/revert_selection" /> android:text="@string/revert_selection" />
<com.google.android.material.button.MaterialSplitButton
android:id="@+id/btn_split"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btn_select_action_main" android:id="@+id/btn_select_action_main"
style="@style/Widget.Material3Expressive.Button" style="?attr/materialSplitButtonLeadingFilledStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minWidth="0dp" android:minWidth="0dp"
android:text="@string/app_name" android:text="@string/app_name"
android:visibility="visible" /> android:visibility="visible" />
</com.google.android.material.button.MaterialButtonGroup> <com.google.android.material.button.MaterialButton
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_menu_more" android:id="@+id/iv_menu_more"
android:layout_width="32dp" style="?attr/materialSplitButtonIconFilledStyle"
android:layout_height="32dp" android:layout_width="wrap_content"
android:layout_marginStart="4dp" android:layout_height="wrap_content"
android:padding="4dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/more_menu" android:contentDescription="@string/more_menu"
android:src="@drawable/ic_more_vert" app:icon="@drawable/m3_split_button_chevron_avd"/>
android:tooltipText="@string/more_menu"
android:visibility="visible" </com.google.android.material.button.MaterialSplitButton>
tools:ignore="RtlHardcoded,UnusedAttribute" />
</LinearLayout> </LinearLayout>
+1
View File
@@ -7,6 +7,7 @@
<item <item
android:id="@+id/menu_clear" android:id="@+id/menu_clear"
android:title="@string/clear" android:title="@string/clear"
android:icon="@drawable/ic_clear_all"
app:showAsAction="always" /> app:showAsAction="always" />
</menu> </menu>