| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | xmlns:tools="http://schemas.android.com/tools" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | tools:context=".ui.home.HomeFragment"> |
| | | android:layout_height="match_parent"> |
| | | |
| | | <!-- <TextView--> |
| | | <!-- android:id="@+id/text_home"--> |
| | | <!-- android:layout_width="match_parent"--> |
| | | <!-- android:layout_height="wrap_content"--> |
| | | <!-- android:layout_marginStart="8dp"--> |
| | | <!-- android:layout_marginTop="8dp"--> |
| | | <!-- android:layout_marginEnd="8dp"--> |
| | | <!-- android:textAlignment="center"--> |
| | | <!-- android:textSize="20sp"--> |
| | | <!-- app:layout_constraintBottom_toBottomOf="parent"--> |
| | | <!-- app:layout_constraintEnd_toEndOf="parent"--> |
| | | <!-- app:layout_constraintStart_toStartOf="parent"--> |
| | | <!-- app:layout_constraintTop_toTopOf="parent" />--> |
| | | |
| | | <androidx.recyclerview.widget.RecyclerView |
| | | xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:id="@+id/recyclerView" |
| | | <ScrollView |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | android:padding="8dp"/> |
| | | android:layout_marginTop="0dp"> <!-- 留出顶部广告位的高度 --> |
| | | > |
| | | <!-- LinearLayout的作用是按照垂直或者水平方向排列其子视图--> |
| | | <!-- CardView组件是用于实现卡片式布局--> |
| | | <!-- RecyclerView 回收商视图 它使用适配器(Adapter)来管理数据的显示,--> |
| | | <!-- 开发者可以根据自己的需求实现适配器的方法,将数据与视图进行绑定。--> |
| | | <!-- 这使得 RecyclerView 能够轻松地处理各种类型的数据,并按照自定义的布局方式展示。--> |
| | | <!-- 支持局部刷新 通知数据集变化--> |
| | | <LinearLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:orientation="vertical"> |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | | |
| | | <!-- 优化后的快递/财务切换区域 --> |
| | | <LinearLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:orientation="horizontal" |
| | | android:layout_marginTop="8dp" |
| | | android:layout_marginBottom="8dp" |
| | | android:layout_marginHorizontal="4dp"> |
| | | |
| | | <!-- 分类标签区域 --> |
| | | <LinearLayout |
| | | android:layout_width="0dp" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:orientation="horizontal"> |
| | | |
| | | <com.example.firstapp.view.UnderlineTextView |
| | | android:id="@+id/tabExpress" |
| | | android:layout_width="0dp" |
| | | android:layout_height="match_parent" |
| | | android:layout_weight="1" |
| | | android:gravity="center" |
| | | android:padding="4dp" |
| | | android:text="快递" |
| | | android:textSize="14sp" |
| | | android:singleLine="true" |
| | | android:ellipsize="end" /> |
| | | |
| | | <com.example.firstapp.view.UnderlineTextView |
| | | android:id="@+id/tabFinance" |
| | | android:layout_width="0dp" |
| | | android:layout_height="match_parent" |
| | | android:layout_weight="1" |
| | | android:gravity="center" |
| | | android:padding="4dp" |
| | | android:text="还款" |
| | | android:textSize="14sp" |
| | | android:singleLine="true" |
| | | android:ellipsize="end" /> |
| | | |
| | | <com.example.firstapp.view.UnderlineTextView |
| | | android:id="@+id/tabIncome" |
| | | android:layout_width="0dp" |
| | | android:layout_height="match_parent" |
| | | android:layout_weight="1" |
| | | android:gravity="center" |
| | | android:padding="4dp" |
| | | android:text="收入" |
| | | android:textSize="14sp" |
| | | android:singleLine="true" |
| | | android:ellipsize="end" /> |
| | | |
| | | <!-- <com.example.firstapp.view.UnderlineTextView--> |
| | | <!-- android:id="@+id/tabFlight"--> |
| | | <!-- android:layout_width="0dp"--> |
| | | <!-- android:layout_height="match_parent"--> |
| | | <!-- android:layout_weight="1"--> |
| | | <!-- android:gravity="center"--> |
| | | <!-- android:padding="4dp"--> |
| | | <!-- android:text="航班"--> |
| | | <!-- android:textSize="14sp"--> |
| | | <!-- android:singleLine="true"--> |
| | | <!-- android:ellipsize="end" />--> |
| | | |
| | | <!-- <com.example.firstapp.view.UnderlineTextView--> |
| | | <!-- android:id="@+id/tabTrain"--> |
| | | <!-- android:layout_width="0dp"--> |
| | | <!-- android:layout_height="match_parent"--> |
| | | <!-- android:layout_weight="1"--> |
| | | <!-- android:gravity="center"--> |
| | | <!-- android:padding="4dp"--> |
| | | <!-- android:text="火车票"--> |
| | | <!-- android:textSize="14sp"--> |
| | | <!-- android:singleLine="true"--> |
| | | <!-- android:ellipsize="end" />--> |
| | | </LinearLayout> |
| | | |
| | | <!-- 右侧图标区域 --> |
| | | <LinearLayout |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="match_parent" |
| | | android:orientation="horizontal" |
| | | android:gravity="center_vertical" |
| | | android:layout_marginStart="2dp"> |
| | | |
| | | <ImageButton |
| | | android:id="@+id/categoryButton" |
| | | android:layout_width="26dp" |
| | | android:layout_height="26dp" |
| | | android:layout_marginEnd="4dp" |
| | | android:background="?attr/selectableItemBackgroundBorderless" |
| | | android:contentDescription="分类设置" |
| | | android:padding="3dp" |
| | | android:scaleType="fitCenter" |
| | | android:src="@drawable/home_add" /> |
| | | |
| | | <!-- 使用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> |
| | | |
| | | <!-- 内容区域 --> |
| | | <FrameLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | > |
| | | |
| | | <androidx.recyclerview.widget.RecyclerView |
| | | android:id="@+id/express_recycler" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:padding="8dp" /> |
| | | |
| | | <androidx.recyclerview.widget.RecyclerView |
| | | android:id="@+id/finance_recycler" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:padding="8dp" /> |
| | | |
| | | <androidx.recyclerview.widget.RecyclerView |
| | | android:id="@+id/income_recycler" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:padding="8dp" /> |
| | | |
| | | <androidx.recyclerview.widget.RecyclerView |
| | | android:id="@+id/flight_recycler" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:padding="8dp" |
| | | android:visibility="gone" /> |
| | | |
| | | <androidx.recyclerview.widget.RecyclerView |
| | | android:id="@+id/train_recycler" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:padding="8dp" |
| | | android:visibility="gone" /> |
| | | |
| | | </FrameLayout> |
| | | |
| | | <!-- 底部广告位 --> |
| | | <androidx.cardview.widget.CardView |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | app:cardCornerRadius="8dp" |
| | | app:cardElevation="2dp"> |
| | | |
| | | <ImageView |
| | | android:id="@+id/bottomAdBanner" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="80dp" |
| | | android:scaleType="centerCrop" /> |
| | | </androidx.cardview.widget.CardView> |
| | | |
| | | </LinearLayout> |
| | | </ScrollView> |
| | | |
| | | <!-- <!– 顶部广告位 –>--> |
| | | <!-- <androidx.cardview.widget.CardView--> |
| | | <!-- android:layout_width="match_parent"--> |
| | | <!-- android:layout_height="wrap_content">--> |
| | | |
| | | <!-- <ImageView--> |
| | | <!-- android:id="@+id/adBanner"--> |
| | | <!-- android:layout_width="match_parent"--> |
| | | <!-- android:layout_height="40dp"--> |
| | | <!-- android:scaleType="centerCrop"--> |
| | | <!-- android:src="@drawable/up_back" />--> |
| | | <!-- </androidx.cardview.widget.CardView>--> |
| | | |
| | | <!-- 在适当的位置添加 --> |
| | | |
| | | </FrameLayout> |