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

refractory 优化导航栏

RobinTan1024 4 éve
szülő
commit
6d571c0e0a

+ 13 - 5
app/src/main/java/com/doverfuelingsolutions/issp/view/widget/FragmentToolbar.kt

@@ -1,14 +1,15 @@
 package com.doverfuelingsolutions.issp.view.widget
 
 import android.content.Context
+import android.media.AudioManager
 import android.util.AttributeSet
+import android.view.SoundEffectConstants
 import android.view.View
 import android.widget.FrameLayout
 import com.doverfuelingsolutions.issp.R
 import com.doverfuelingsolutions.issp.utils.log.DFSLog
 import kotlinx.android.synthetic.main.widget_fragment_toolbar.view.*
 import kotlinx.coroutines.*
-import java.util.*
 
 class FragmentToolbar(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) {
 
@@ -32,7 +33,7 @@ class FragmentToolbar(context: Context, attrs: AttributeSet) : FrameLayout(conte
     private var title = ""
         set(value) {
             field = value
-            materialToolbar.title = value
+            titleText.text = value
         }
 
     // 当值=-1时,不启用倒计时
@@ -52,14 +53,21 @@ class FragmentToolbar(context: Context, attrs: AttributeSet) : FrameLayout(conte
                 title = getString(R.styleable.FragmentToolbar_title) ?: ""
                 countdownTime = getInteger(R.styleable.FragmentToolbar_countdownTime, 60)
                 currentTime = countdownTime
-                countdownAutoStart = getBoolean(R.styleable.FragmentToolbar_countdownAutoStart, true)
+                countdownAutoStart =
+                    getBoolean(R.styleable.FragmentToolbar_countdownAutoStart, true)
             } finally {
                 recycle()
             }
         }
 
-        buttonBack.setOnClickListener { backHandler?.invoke() }
-        buttonHome.setOnClickListener { homeHandler?.invoke() }
+        buttonBack.setOnClickListener {
+            buttonBack.playSoundEffect(SoundEffectConstants.CLICK)
+            backHandler?.invoke()
+        }
+        buttonHome.setOnClickListener {
+            buttonHome.playSoundEffect(SoundEffectConstants.CLICK)
+            homeHandler?.invoke()
+        }
         if (countdownTime <= 0) isTimerVisible = false
     }
 

+ 46 - 43
app/src/main/res/layout/widget_fragment_toolbar.xml

@@ -1,52 +1,55 @@
 <?xml version="1.0" encoding="utf-8"?>
-<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     style="@style/fullWidth"
+    android:background="@color/colorPrimary"
     android:elevation="10dp"
-    app:elevation="10dp">
+    android:gravity="center_vertical"
+    android:paddingHorizontal="30dp"
+    android:paddingVertical="16dp"
+    android:weightSum="1">
 
-    <androidx.appcompat.widget.LinearLayoutCompat
-        style="@style/fullWidth"
-        android:layout_marginStart="20dp"
-        android:layout_marginEnd="20dp"
-        android:gravity="center_vertical"
-        android:weightSum="1">
-
-        <ImageView
-            android:id="@+id/buttonBack"
-            android:layout_width="30dp"
-            android:layout_height="30dp"
-            android:layout_centerVertical="true"
-            android:contentDescription="@string/back"
-            android:src="@drawable/ic_back"
-            app:tint="@color/white" />
+    <ImageButton
+        android:id="@+id/buttonBack"
+        android:layout_width="44dp"
+        android:layout_height="44dp"
+        android:layout_centerVertical="true"
+        android:background="?android:selectableItemBackgroundBorderless"
+        android:clickable="true"
+        android:contentDescription="@string/back"
+        android:focusable="true"
+        android:scaleType="centerCrop"
+        android:soundEffectsEnabled="true"
+        android:src="@drawable/ic_back" />
 
-        <com.google.android.material.appbar.MaterialToolbar
-            android:id="@+id/materialToolbar"
-            style="@style/Widget.MaterialComponents.Toolbar.Primary"
-            android:layout_width="0dp"
-            android:layout_height="?attr/actionBarSize"
-            android:layout_weight="1"
-            android:elevation="0dp"
-            app:title="@string/app_name"
-            app:titleTextColor="@color/white" />
+    <TextView
+        android:id="@+id/titleText"
+        style="@style/wrap"
+        android:layout_width="0dp"
+        android:layout_marginStart="20dp"
+        android:layout_weight="1"
+        android:text="@string/app_name"
+        android:textColor="@color/white"
+        android:textSize="26sp" />
 
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/countdownNum"
-            style="@style/wrap"
-            android:text="@string/example_num"
-            android:textSize="18sp"
-            android:textColor="@color/white"/>
+    <TextView
+        android:id="@+id/countdownNum"
+        style="@style/wrap"
+        android:text="@string/example_num"
+        android:textColor="@color/white"
+        android:textSize="26sp" />
 
-        <ImageView
-            android:id="@+id/buttonHome"
-            android:layout_width="22dp"
-            android:layout_height="22dp"
-            android:layout_centerVertical="true"
-            android:layout_marginStart="30dp"
-            android:contentDescription="@string/homepage"
-            android:src="@drawable/ic_homepage"
-            app:tint="@color/white" />
+    <ImageButton
+        android:id="@+id/buttonHome"
+        android:layout_width="36dp"
+        android:layout_height="36dp"
+        android:layout_marginStart="40dp"
+        android:background="?android:selectableItemBackgroundBorderless"
+        android:clickable="true"
+        android:contentDescription="@string/homepage"
+        android:focusable="true"
+        android:scaleType="centerCrop"
+        android:soundEffectsEnabled="true"
+        android:src="@drawable/ic_homepage" />
 
-    </androidx.appcompat.widget.LinearLayoutCompat>
-</com.google.android.material.appbar.AppBarLayout>
+</androidx.appcompat.widget.LinearLayoutCompat>