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