Ver código fonte

主题列表选中时勾选 #252

HapeLee 1 ano atrás
pai
commit
0ac3caeaf8

+ 8 - 1
app/src/main/java/io/legado/app/ui/config/ThemeListDialog.kt

@@ -2,10 +2,12 @@ package io.legado.app.ui.config
 
 import android.content.Context
 import android.os.Bundle
+import android.util.Log
 import android.view.MenuItem
 import android.view.View
 import android.view.ViewGroup
 import androidx.appcompat.widget.Toolbar
+import androidx.core.graphics.toColorInt
 import androidx.recyclerview.widget.LinearLayoutManager
 import io.legado.app.R
 import io.legado.app.base.BaseBottomSheetDialogFragment
@@ -15,6 +17,7 @@ import io.legado.app.databinding.DialogRecyclerViewBinding
 import io.legado.app.databinding.ItemThemeConfigBinding
 import io.legado.app.help.config.ThemeConfig
 import io.legado.app.lib.dialogs.alert
+import io.legado.app.lib.theme.primaryColor
 //import io.legado.app.lib.theme.primaryColor
 import io.legado.app.ui.widget.recycler.VerticalDivider
 import io.legado.app.utils.*
@@ -41,7 +44,6 @@ class ThemeListDialog : BaseBottomSheetDialogFragment(R.layout.dialog_recycler_v
 
     private fun initView() = binding.run {
         recyclerView.layoutManager = LinearLayoutManager(requireContext())
-        recyclerView.addItemDecoration(VerticalDivider(requireContext()))
         recyclerView.adapter = adapter
     }
 
@@ -100,9 +102,14 @@ class ThemeListDialog : BaseBottomSheetDialogFragment(R.layout.dialog_recycler_v
         ) {
             binding.apply {
                 tvName.text = item.themeName
+                if (item.primaryColor.toColorInt() == context.primaryColor)
+                    cdRoot.setCardBackgroundColor(context.themeColor(com.google.android.material.R.attr.colorSecondaryContainer))
+                else
+                    cdRoot.setCardBackgroundColor(context.themeColor(com.google.android.material.R.attr.colorSurfaceContainer))
             }
         }
 
+
         override fun registerListener(holder: ItemViewHolder, binding: ItemThemeConfigBinding) {
             binding.apply {
                 root.setOnClickListener {

+ 45 - 35
app/src/main/res/layout/item_theme_config.xml

@@ -1,44 +1,54 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.google.android.material.listitem.ListItemCardView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/cd_root"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:padding="12dp"
-    android:background="?attr/selectableItemBackground"
-    android:gravity="center_vertical"
-    android:orientation="horizontal">
+    android:checkable="true"
+    app:cardCornerRadius="16dp"
+    android:layout_margin="8dp">
 
-    <TextView
-        android:padding="6dp"
-        android:id="@+id/tv_name"
-        android:layout_width="0dp"
+    <LinearLayout
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:maxLines="1"
-        android:textSize="16sp"
-        tools:text="theme" />
+        android:padding="8dp"
+        android:gravity="center_vertical"
+        android:orientation="horizontal">
 
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_share"
-        android:layout_width="36dp"
-        android:layout_height="36dp"
-        android:layout_gravity="center"
-        android:background="?attr/selectableItemBackgroundBorderless"
-        android:contentDescription="@string/edit"
-        android:padding="6dp"
-        android:tooltipText="@string/edit"
-        android:src="@drawable/ic_share"
-        tools:ignore="UnusedAttribute" />
+        <TextView
+            android:padding="6dp"
+            android:id="@+id/tv_name"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:maxLines="1"
+            android:textSize="16sp"
+            tools:text="theme" />
 
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_delete"
-        android:layout_width="36dp"
-        android:layout_height="36dp"
-        android:background="?attr/selectableItemBackgroundBorderless"
-        android:contentDescription="@string/delete"
-        android:tooltipText="@string/delete"
-        android:padding="6dp"
-        android:src="@drawable/ic_clear_all"
-        tools:ignore="UnusedAttribute" />
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/iv_share"
+            android:layout_width="36dp"
+            android:layout_height="36dp"
+            android:layout_gravity="center"
+            android:background="?attr/selectableItemBackgroundBorderless"
+            android:contentDescription="@string/edit"
+            android:padding="6dp"
+            android:tooltipText="@string/edit"
+            android:src="@drawable/ic_share"
+            tools:ignore="UnusedAttribute" />
 
-</LinearLayout>
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/iv_delete"
+            android:layout_width="36dp"
+            android:layout_height="36dp"
+            android:background="?attr/selectableItemBackgroundBorderless"
+            android:contentDescription="@string/delete"
+            android:tooltipText="@string/delete"
+            android:padding="6dp"
+            android:src="@drawable/ic_clear_all"
+            tools:ignore="UnusedAttribute" />
+
+    </LinearLayout>
+
+</com.google.android.material.listitem.ListItemCardView>