From 85d11d6cd12abdd1e1f5f7516a7fb53a4826633f Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期二, 15 四月 2025 09:17:18 +0800 Subject: [PATCH] add: 消息提醒 --- app/src/main/java/com/example/firstapp/activity/SettingActivity.kt | 2 app/src/main/java/com/example/firstapp/ui/home/HomeFragment.kt | 25 +----------- app/src/main/java/com/example/firstapp/MainActivity.kt | 3 + app/src/main/res/drawable/circle_badge_background.xml | 8 ++++ app/src/main/res/layout/fragment_home.xml | 81 +++++++++++++++++++++++++++------------- 5 files changed, 68 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/MainActivity.kt b/app/src/main/java/com/example/firstapp/MainActivity.kt index c59ca87..13ae51e 100644 --- a/app/src/main/java/com/example/firstapp/MainActivity.kt +++ b/app/src/main/java/com/example/firstapp/MainActivity.kt @@ -222,7 +222,8 @@ address = response.data.details.address ?: "", remarks = response.data.details.time ?: "", ) - if(code.oneLevel.isNotEmpty() && code.secondLevel.isNotEmpty() && code.code.isNotEmpty()) { +// if(code.oneLevel.isNotEmpty() && code.secondLevel.isNotEmpty() && code.code.isNotEmpty()) { + if(code.oneLevel.isNotEmpty() && code.code.isNotEmpty()) { Core.code.insert(code) android.util.Log.d("MainActivity", "历史快递短信已保存: $pickupCode") } diff --git a/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt b/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt index 371c4d8..24331b0 100644 --- a/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt +++ b/app/src/main/java/com/example/firstapp/activity/SettingActivity.kt @@ -103,7 +103,7 @@ Core.code.deleteAll() Core.msg.deleteAll() Core.keyword.deleteAll() - Core.reminder.deleteAll() +// Core.reminder.deleteAll() dialog.dismiss() // 跳转到 LoginActivity 并清除之前的任务栈 diff --git a/app/src/main/java/com/example/firstapp/ui/home/HomeFragment.kt b/app/src/main/java/com/example/firstapp/ui/home/HomeFragment.kt index 65bf96a..edaff47 100644 --- a/app/src/main/java/com/example/firstapp/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/example/firstapp/ui/home/HomeFragment.kt @@ -538,29 +538,8 @@ // 添加设置未读提醒徽章的方法 private fun setupUnreadBadge() { - // 创建未读消息数量的小红点 - reminderBadge = TextView(requireContext()).apply { - setBackgroundResource(R.drawable.circle_badge_background) - setTextColor(Color.WHITE) - gravity = Gravity.CENTER - textSize = 10f - minWidth = resources.getDimensionPixelSize(R.dimen.badge_min_width) - minHeight = resources.getDimensionPixelSize(R.dimen.badge_min_height) - setPadding(4, 0, 4, 0) - } - - // 添加到布局中 - val parentView = binding.reminderButton.parent as? ViewGroup - parentView?.addView(reminderBadge) - - // 调整位置到提醒按钮右上角 - (reminderBadge?.layoutParams as? FrameLayout.LayoutParams)?.apply { - gravity = Gravity.TOP or Gravity.END - width = 48 // 使用固定像素值 - height = 48 // 使用固定像素值 - // 设置位置偏移,使小红点位于图标右上角 - setMargins(0, 0, 0, 0) - } + // 直接使用布局中定义的小红点 + reminderBadge = binding.reminderBadge } // 更新未读提醒徽章 diff --git a/app/src/main/res/drawable/circle_badge_background.xml b/app/src/main/res/drawable/circle_badge_background.xml new file mode 100644 index 0000000..037e150 --- /dev/null +++ b/app/src/main/res/drawable/circle_badge_background.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval"> + <solid android:color="#FF0000" /> + <size + android:width="16dp" + android:height="16dp" /> +</shape> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index bcfa7d8..47e84b4 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -28,7 +28,7 @@ android:orientation="horizontal" android:layout_marginTop="8dp" android:layout_marginBottom="8dp" - android:layout_marginHorizontal="8dp"> + android:layout_marginHorizontal="4dp"> <!-- 分类标签区域 --> <LinearLayout @@ -43,10 +43,12 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" - android:padding="6dp" + android:padding="4dp" android:text="快递" android:textSize="14sp" - android:textStyle="bold" /> + android:textStyle="bold" + android:singleLine="true" + android:ellipsize="end" /> <com.example.firstapp.view.UnderlineTextView android:id="@+id/tabFinance" @@ -54,9 +56,11 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" - android:padding="6dp" + android:padding="4dp" android:text="还款" - android:textSize="14sp" /> + android:textSize="14sp" + android:singleLine="true" + android:ellipsize="end" /> <com.example.firstapp.view.UnderlineTextView android:id="@+id/tabIncome" @@ -64,9 +68,11 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" - android:padding="6dp" + android:padding="4dp" android:text="收入" - android:textSize="14sp" /> + android:textSize="14sp" + android:singleLine="true" + android:ellipsize="end" /> <com.example.firstapp.view.UnderlineTextView android:id="@+id/tabFlight" @@ -74,9 +80,11 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" - android:padding="6dp" + android:padding="4dp" android:text="航班" - android:textSize="14sp" /> + android:textSize="14sp" + android:singleLine="true" + android:ellipsize="end" /> <com.example.firstapp.view.UnderlineTextView android:id="@+id/tabTrain" @@ -84,9 +92,11 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" - android:padding="6dp" + android:padding="4dp" android:text="火车票" - android:textSize="13sp" /> + android:textSize="14sp" + android:singleLine="true" + android:ellipsize="end" /> </LinearLayout> <!-- 右侧图标区域 --> @@ -94,28 +104,47 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal" - android:gravity="center_vertical"> + android:gravity="center_vertical" + android:layout_marginStart="2dp"> <ImageButton android:id="@+id/categoryButton" - android:layout_width="28dp" - android:layout_height="28dp" - android:layout_marginEnd="8dp" + android:layout_width="26dp" + android:layout_height="26dp" + android:layout_marginEnd="4dp" android:background="?attr/selectableItemBackgroundBorderless" android:contentDescription="分类设置" - android:padding="4dp" + android:padding="3dp" android:scaleType="fitCenter" android:src="@drawable/home_add" /> - <ImageButton - android:id="@+id/reminderButton" - android:layout_width="28dp" - android:layout_height="28dp" - android:background="?attr/selectableItemBackgroundBorderless" - android:contentDescription="提醒设置" - android:padding="4dp" - android:scaleType="fitCenter" - android:src="@drawable/reminder" /> + <!-- 使用FrameLayout包装提醒按钮和红点,确保小红点完整显示 --> + <FrameLayout + android:layout_width="34dp" + android:layout_height="34dp"> + + <ImageButton + android:id="@+id/reminderButton" + android:layout_width="26dp" + android:layout_height="26dp" + android:layout_gravity="center" + android:background="?attr/selectableItemBackgroundBorderless" + android:contentDescription="提醒设置" + android:padding="3dp" + android:scaleType="fitCenter" + android:src="@drawable/reminder" /> + + <TextView + android:id="@+id/reminderBadge" + android:layout_width="14dp" + android:layout_height="14dp" + android:layout_gravity="top|end" + android:background="@drawable/circle_badge_background" + android:gravity="center" + android:textColor="#FFFFFF" + android:textSize="8sp" + android:visibility="gone" /> + </FrameLayout> </LinearLayout> </LinearLayout> @@ -123,7 +152,7 @@ <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="16dp"> + > <androidx.recyclerview.widget.RecyclerView android:id="@+id/express_recycler" -- Gitblit v1.9.3