我正在尝试制作一个类似于这样的列表视图:
(来源:pici.se) 它分为两部分,左侧是左对齐的,包含两个单行截断的文本视图。右侧部分也有两个文本视图,但是它们是右对齐的并且具有固定大小。主要问题是右侧部分没有对齐到右侧。如果我使用静态宽度将其推向右侧,它在横向模式下看起来不好看。
我认为应该很容易实现。但事实并非如此。
首先我尝试使用LinearLayout:
我一直在调整权重属性,但似乎没有帮助。右侧根本无法对齐到右侧。
然后我尝试了相对布局:
(来源:pici.se) 它分为两部分,左侧是左对齐的,包含两个单行截断的文本视图。右侧部分也有两个文本视图,但是它们是右对齐的并且具有固定大小。主要问题是右侧部分没有对齐到右侧。如果我使用静态宽度将其推向右侧,它在横向模式下看起来不好看。
我认为应该很容易实现。但事实并非如此。
首先我尝试使用LinearLayout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:orientation="vertical"
android:id="@+id/L1"
android:layout_height="fill_parent"
android:layout_weight="0.8"
android:layout_width="0dip">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:text="Long text Long text Long text Long text Long text Long text Long text" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:text="Short text" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:id="@+id/L2"
android:layout_gravity="top|right"
android:layout_height="fill_parent"
android:layout_weight="0.2"
android:layout_width="0dip">
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="12:12" />
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="64%"
android:layout_gravity="right" />
</LinearLayout>
</LinearLayout>
我一直在调整权重属性,但似乎没有帮助。右侧根本无法对齐到右侧。
然后我尝试了相对布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<TextView
android:id="@+id/text1"
android:layout_height="wrap_content"
android:lines="1"
android:scrollHorizontally="true"
android:layout_alignParentTop="true"
android:text="Long text Long text Long text Long text Long text Long text Long text"
android:layout_alignParentLeft="true"
android:ellipsize="end"
android:layout_width="275dp" />
<TextView
android:id="@+id/text2"
android:layout_height="wrap_content"
android:lines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:text="Long text Long text Long text Long text Long text Long text Long text"
android:layout_below="@+id/text1"
android:layout_alignParentLeft="true"
android:layout_width="275dp" />
<TextView
android:id="@+id/text3"
android:layout_height="wrap_content"
android:text="12:12"
android:layout_gravity="right"
android:layout_alignParentRight="true"
android:layout_alignBaseline="@+id/text1"
android:layout_width="40dp"
android:layout_alignRight="@+id/text4" />
<TextView
android:id="@+id/text4"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="64%"
android:layout_alignParentRight="true"
android:layout_alignBaseline="@+id/text2"
android:layout_width="40dp" />
</RelativeLayout>
我也遇到了同样的问题,右边的部分没有正确地对齐到右边,我不得不使用android:layout_width的静态大小来将它推到另一侧。 如果不使用静态大小,文本就会相互剪切。
RelativeLayout
中有更多的小部件,不仅仅是LinearLayout
。 - Macarse