Android 硬布局item的高级写法,搭建android开发环境
作者:互联网
android:orientation=“horizontal”
android:padding="@dimen/dp_20">
<ImageView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:contentDescription="@string/app_name"
android:src="@mipmap/ic_agreement" />
<TextView
android:layout_width=“0dp”
android:layout_height=“wrap_content”
android:layout_marginStart="@dimen/dp_20"
android:layout_weight=“1”
android:includeFontPadding=“false”
android:text=“删除个人信息”
android:textColor="@color/color_505258"
android:textSize="@dimen/sp_14" />
<ImageView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:contentDescription="@string/app_name"
android:src="@mipmap/ic_arrow_right" />
<View
android:layout_width=“match_parent”
android:layout_height=“1dp”
android:layout_marginStart="@dimen/dp_50"
android:background="@color/color_F6F6F6" />
<LinearLayout
android:id="@+id/ll2"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:foreground="?android:attr/selectableItemBackground"
android:gravity=“center_vertical”
android:orientation=“horizontal”
android:padding="@dimen/dp_20">
<ImageView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:contentDescription="@string/app_name"
android:src="@mipmap/ic_agreement" />
<TextView
android:layout_width=“0dp”
android:layout_height=“wrap_content”
android:layout_marginStart="@dimen/dp_20"
android:layout_weight=“1”
android:includeFontPadding=“false”
android:text=“注销账户”
android:textColor="@color/color_505258"
android:textSize="@dimen/sp_14" />
<ImageView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:contentDescription="@string/app_name"
android:src="@mipmap/ic_arrow_right" />
<View
android:layout_width=“match_parent”
android:layout_height=“1dp”
android:layout_marginStart="@dimen/dp_50"
android:background="@color/color_F6F6F6" />
<LinearLayout
android:id="@+id/ll3"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:foreground="?android:attr/selectableItemBackground"
android:gravity=“center_vertical”
android:orientation=“horizontal”
android:padding="@dimen/dp_20">
<ImageView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:contentDescription="@string/app_name"
android:src="@mipmap/ic_agreement" />
<TextView
android:layout_width=“0dp”
android:layout_height=“wrap_content”
android:layout_marginStart="@dimen/dp_20"
android:layout_weight=“1”
android:includeFontPadding=“false”
android:text=“关于”
android:textColor="@color/color_505258"
android:textSize="@dimen/sp_14" />
<ImageView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:contentDescription="@string/app_name"
android:src="@mipmap/ic_arrow_right" />
最外层LinearLayout的background:
<?xml version="1.0" encoding="utf-8"?>可以看到嵌套虽然不深,但是已经拉的很长,不易阅读修改。
且 哪怕是一层的嵌套优化,也是优化,积少成多。
==============================================================
利用TextView的drawableStart和drawableEnd属性,来做简化,可以直接去掉左右两边的ImageView。
至于分割线,利用LinearLayout的divider和showDividers属性,写个shape,来做简化,去掉item之间做横线的View。
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginHorizontal="@dimen/dp_15"
android:layout_marginVertical="@dimen/dp_20"
android:background="@drawable/shape_bg_white"
android:divider="@drawable/shape_divider_my"
android:orientation=“vertical”
android:showDividers=“middle”>
<TextView
android:id="@+id/tv_delete_user"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:drawablePadding="@dimen/dp_16"
android:foreground="?android:attr/selectableItemBackground"
android:gravity=“center_vertical”
android:includeFontPadding=“false”
android:padding="@dimen/dp_20"
android:text=“删除个人信息”
android:textColor="@color/color_505258"
android:textSize="@dimen/sp_14"
app:drawableEndCompat="@mipmap/ic_arrow_right"
app:drawableStartCompat="@mipmap/ic_agreement" />
<TextView
android:id="@+id/tv_logout_user"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:drawablePadding="@dimen/dp_16"
android:foreground="?android:attr/selectableItemBackground"
android:gravity=“center_vertical”
android:includeFontPadding=“false”
android:padding="@dimen/dp_20"
android:text=“注销账户”
android:textColor="@color/color_505258"
android:textSize="@dimen/sp_14"
app:drawableEndCompat="@mipmap/ic_arrow_right"
app:drawableStartCompat="@mipmap/ic_agreement" />
<TextView
android:id="@+id/tv_about"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:drawablePadding="@dimen/dp_16"
android:foreground="?android:attr/selectableItemBackground"
android:gravity=“center_vertical”
android:includeFontPadding=“false”
android:padding="@dimen/dp_20"
android:text=“关于”
android:textColor="@color/color_505258"
android:textSize="@dimen/sp_14"
app:drawableEndCompat="@mipmap/ic_arrow_right"
app:drawableStartCompat="@mipmap/ic_agreement" />
shape:
<?xml version="1.0" encoding="utf-8"?><item
android:left="@dimen/dp_50" >
可以看到,层级减少了,行数也减少了,看起来清爽多了。
==================================================================
尽管如此,我们还是有可以简化的空间。
Te
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
xtView有一些共同属性,可以抽取做一个style。
再看简化后的代码
标签:dimen,layout,content,item,wrap,Android,android,dp 来源: https://blog.csdn.net/m0_64604893/article/details/122082269