如果要实现这种布局,怎么实现呢?用代码实现的话,后来人修改这块代码很可能一不小心会跳进坑里,所以本文旨在用纯XML实现该布局。
这个布局最大的难处是,前面的控件会把后面的控件顶出屏幕,不信的话各位可以去试试,各位会发现这里面有很多坑,到后面甚至会直接用代码去写。
下面便是主要的XML实现方案,主要的一个注意点是第二个LinearLayout的layout_width要为wrap_content,如果为march_parent的话,会发现会变成这样
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:layout_weight="1"
android:singleLine="true"
android:text="31233" />
<TextView
android:id="@+id/number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:singleLine="true"
android:text="321" />
</LinearLayout>
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2016.3.3" />
</LinearLayout>
具体代码在这: https://github.com/SilasGao/OmitLayout