fix: 任务页3项优化

1. 标题栏固定顶部不随内容滚动
2. 底部按钮高度缩小(padding 21→13dp)字体加大(24→28sp)
3. 待完成页面改为:地点+备注+打卡时间+绿色指引块"任务进行中,完成工作后点击下方按钮"
   按钮文字改为"完成任务"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-04-28 13:29:33 +09:30
parent d7b61bf0fa
commit 7f06cdc9d1
2 changed files with 277 additions and 246 deletions

View File

@@ -1,297 +1,322 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 任务页面(原型图V3适老化设计
120dpi屏幕老年人用户所有字体放大 -->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<!-- 任务页面原型图V3适老化设计
1. 标题栏固定顶部不滚动
2. 底部按钮高度缩小字体加大
3. 待完成页面逻辑优化 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background">
android:background="@color/background"
android:orientation="vertical">
<ScrollView
android:id="@+id/scrollView"
<!-- ===== 固定标题栏(不随内容滚动) ===== -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none"
android:paddingBottom="72dp"
android:clipToPadding="false">
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingStart="21dp"
android:paddingTop="27dp"
android:paddingEnd="21dp"
android:paddingBottom="8dp">
<LinearLayout
android:layout_width="match_parent"
<TextView
android:id="@+id/btnBack"
android:layout_width="32dp"
android:layout_height="32dp"
android:gravity="center"
android:text=""
android:textColor="@color/primary"
android:textSize="27sp" />
<TextView
android:id="@+id/tvTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="21dp"
android:paddingTop="27dp"
android:paddingEnd="21dp">
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/text_secondary"
android:textSize="20sp" />
<TextView
android:id="@+id/tvPageNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/text_primary"
android:textSize="20sp"
android:textStyle="bold"
android:minWidth="37dp"
android:gravity="end" />
</LinearLayout>
<!-- ===== 可滚动内容区(标题和按钮之间) ===== -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none"
android:clipToPadding="false">
<!-- 标题栏:返回 + 状态名 + 页码 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_marginBottom="13dp">
<TextView
android:id="@+id/btnBack"
android:layout_width="32dp"
android:layout_height="32dp"
android:gravity="center"
android:text=""
android:textColor="@color/primary"
android:textSize="27sp" />
<TextView
android:id="@+id/tvTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/text_secondary"
android:textSize="20sp" />
<TextView
android:id="@+id/tvPageNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/text_primary"
android:textSize="20sp"
android:textStyle="bold"
android:minWidth="37dp"
android:gravity="end" />
</LinearLayout>
<!-- ===== 任务内容区 ===== -->
<LinearLayout
android:id="@+id/taskContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
android:paddingStart="21dp"
android:paddingEnd="21dp"
android:paddingBottom="8dp">
<!-- 任务名称最大最突出34sp -->
<TextView
android:id="@+id/tvTaskName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/text_primary"
android:textSize="34sp"
android:textStyle="bold"
android:lineSpacingMultiplier="1.2"
android:layout_marginBottom="13dp" />
<!-- 地点蓝色24sp -->
<TextView
android:id="@+id/tvPosition"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/primary"
android:textSize="24sp"
android:layout_marginBottom="8dp"
android:visibility="gone" />
<!-- 时间信息22sp -->
<TextView
android:id="@+id/tvTimeInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/text_secondary"
android:textSize="22sp"
android:lineSpacingMultiplier="1.5"
android:layout_marginBottom="8dp"
android:visibility="gone" />
<!-- 积分橙色大字26sp -->
<TextView
android:id="@+id/tvPoints"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/warning"
android:textSize="26sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"
android:visibility="gone" />
<!-- 备注块绿色淡背景20sp -->
<TextView
android:id="@+id/tvNote"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_note_green"
android:textColor="@color/text_secondary"
android:textSize="20sp"
android:lineSpacingMultiplier="1.5"
android:padding="16dp"
android:layout_marginBottom="11dp"
android:visibility="gone" />
<!-- ===== 指引块标题24sp说明20sp ===== -->
<!-- 指引块1去哪里橙色 -->
<!-- ===== 任务内容区 ===== -->
<LinearLayout
android:id="@+id/blockGoWhere"
android:id="@+id/taskContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_action_block_orange"
android:orientation="vertical"
android:padding="16dp"
android:layout_marginBottom="8dp"
android:visibility="gone">
<!-- 任务名称34sp -->
<TextView
android:id="@+id/tvGoWhereTitle"
android:id="@+id/tvTaskName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/text_primary"
android:textSize="34sp"
android:textStyle="bold"
android:lineSpacingMultiplier="1.2"
android:layout_marginBottom="13dp" />
<!-- 地点蓝色24sp -->
<TextView
android:id="@+id/tvPosition"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/primary"
android:textSize="24sp"
android:layout_marginBottom="8dp"
android:visibility="gone" />
<!-- 时间信息22sp -->
<TextView
android:id="@+id/tvTimeInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/text_secondary"
android:textSize="22sp"
android:lineSpacingMultiplier="1.5"
android:layout_marginBottom="8dp"
android:visibility="gone" />
<!-- 积分橙色26sp -->
<TextView
android:id="@+id/tvPoints"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/warning"
android:textSize="24sp"
android:textStyle="bold" />
android:textSize="26sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"
android:visibility="gone" />
<!-- 备注块绿色淡背景20sp -->
<TextView
android:id="@+id/tvNote"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="找到打卡点后再点下方按钮"
android:background="@drawable/bg_note_green"
android:textColor="@color/text_secondary"
android:textSize="20sp"
android:layout_marginTop="5dp" />
android:lineSpacingMultiplier="1.5"
android:padding="16dp"
android:layout_marginBottom="11dp"
android:visibility="gone" />
<!-- 指引块1去哪里橙色 -->
<LinearLayout
android:id="@+id/blockGoWhere"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_action_block_orange"
android:orientation="vertical"
android:padding="16dp"
android:layout_marginBottom="8dp"
android:visibility="gone">
<TextView
android:id="@+id/tvGoWhereTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/warning"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="找到打卡点后再点下方按钮"
android:textColor="@color/text_secondary"
android:textSize="20sp"
android:layout_marginTop="5dp" />
</LinearLayout>
<!-- 指引块2怎么做蓝色 -->
<LinearLayout
android:id="@+id/blockHowTo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_action_block_blue"
android:orientation="vertical"
android:padding="16dp"
android:layout_marginBottom="8dp"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="将手表贴近信标"
android:textColor="@color/primary"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="听到提示音即打卡成功"
android:textColor="@color/text_secondary"
android:textSize="20sp"
android:layout_marginTop="5dp" />
</LinearLayout>
<!-- 无场景引导块(绿色) -->
<LinearLayout
android:id="@+id/blockNoScene"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_action_block_green"
android:orientation="vertical"
android:padding="16dp"
android:layout_marginBottom="8dp"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="无需前往指定地点"
android:textColor="@color/success"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="确认已就位后,直接点击下方按钮"
android:textColor="@color/text_secondary"
android:textSize="20sp"
android:layout_marginTop="5dp" />
</LinearLayout>
<!-- 待完成:任务进行中信息 -->
<LinearLayout
android:id="@+id/blockInProgress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="8dp"
android:visibility="gone">
<!-- 打卡时间 -->
<TextView
android:id="@+id/tvCheckinTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/text_secondary"
android:textSize="22sp"
android:layout_marginBottom="13dp" />
<!-- 绿色指引块:完成指引 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_action_block_green"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="任务进行中"
android:textColor="@color/success"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="完成工作后,点击下方按钮确认"
android:textColor="@color/text_secondary"
android:textSize="20sp"
android:layout_marginTop="5dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<!-- 指引块2怎么做蓝色 -->
<LinearLayout
android:id="@+id/blockHowTo"
<!-- 空状态 -->
<TextView
android:id="@+id/tvEmpty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_action_block_blue"
android:orientation="vertical"
android:padding="16dp"
android:layout_marginBottom="8dp"
android:visibility="gone">
android:gravity="center"
android:text="暂无任务"
android:textColor="@color/text_secondary"
android:textSize="28sp"
android:paddingTop="80dp"
android:visibility="gone" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="将手表贴近信标"
android:textColor="@color/primary"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="听到提示音即打卡成功"
android:textColor="@color/text_secondary"
android:textSize="20sp"
android:layout_marginTop="5dp" />
</LinearLayout>
<!-- 无场景引导块(绿色) -->
<!-- Loading -->
<LinearLayout
android:id="@+id/blockNoScene"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_action_block_green"
android:orientation="vertical"
android:padding="16dp"
android:layout_marginBottom="8dp"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="无需前往指定地点"
android:textColor="@color/success"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="确认已就位后,直接点击下方按钮"
android:textColor="@color/text_secondary"
android:textSize="20sp"
android:layout_marginTop="5dp" />
</LinearLayout>
<!-- ===== 待完成:打卡确认 ===== -->
<LinearLayout
android:id="@+id/blockCheckedIn"
android:id="@+id/loadingWrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingTop="80dp"
android:visibility="gone">
<TextView
android:id="@+id/tvCheckinTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/success"
android:textSize="44sp"
android:textStyle="bold" />
<ProgressBar
android:layout_width="40dp"
android:layout_height="40dp"
android:indeterminateTint="@color/text_secondary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打卡成功\n完成任务后点下方按钮"
android:text="加载中"
android:textColor="@color/text_secondary"
android:textSize="20sp"
android:gravity="center"
android:lineSpacingMultiplier="1.5"
android:textSize="22sp"
android:layout_marginTop="8dp" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</FrameLayout>
<!-- 空状态 -->
<TextView
android:id="@+id/tvEmpty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="暂无任务"
android:textColor="@color/text_secondary"
android:textSize="28sp"
android:paddingTop="80dp"
android:visibility="gone" />
<!-- Loading -->
<LinearLayout
android:id="@+id/loadingWrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:paddingTop="80dp"
android:visibility="gone">
<ProgressBar
android:layout_width="40dp"
android:layout_height="40dp"
android:indeterminateTint="@color/text_secondary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="加载中"
android:textColor="@color/text_secondary"
android:textSize="22sp"
android:layout_marginTop="8dp" />
</LinearLayout>
</LinearLayout>
</ScrollView>
<!-- 底部操作按钮(大字+宽间距) -->
<!-- ===== 底部操作按钮(高度缩小,字体加大) ===== -->
<TextView
android:id="@+id/btnAction"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="center"
android:padding="21dp"
android:paddingTop="13dp"
android:paddingBottom="13dp"
android:textColor="@color/text_primary"
android:textSize="24sp"
android:textSize="28sp"
android:textStyle="bold"
android:letterSpacing="0.12"
android:visibility="gone" />
</FrameLayout>
</LinearLayout>