我正在寻找有效的方法(仅限最佳XML)水平对齐两个TextView
,像这样:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/opinion_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:maxLines="1"/>
<TextView
android:id="@+id/opinion_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:maxLines="1"/>
</LinearLayout>
opinion_date
的长度始终为~50-70dp,并且必须完全可见opinion_author
的右侧。作者可能有0-255个字符,如果屏幕太多,那么就是椭圆形。
在上面当作者太长时间视图推出日期视图。使用toRightOf
时使用toLeftOf
/ RelativeLayout
的情况相同。即使作者只有很少的字符,设置layout_weight=1
作者保留日期也会粘在父视图组的右边缘上,所以这是一个很大的空间......我正在寻找一种方法,它将日期与作者的权利对齐即使它是椭圆化的并以...结束我几乎没有想法如何用Java解决它(测量视图或文本画,但似乎都不那么有效......)
答案 0 :(得分:1)
试试这段代码:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:shrinkColumns="0">
<TableRow
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center"
android:lines="1"
android:singleLine="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:ellipsize="none"
android:gravity="center"
android:lines="1"
android:singleLine="true" />
</TableRow>
答案 1 :(得分:0)
将android:weightSum = "1"
提供给线性布局。
将android:maxWidth="250dp"
提供给opinion_author textview。
将android:layout_weight="0.3"
提供给opinion_date textview。
如下所示。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1"
android:orientation="horizontal">
<TextView
android:id="@+id/opinion_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxWidth="250dp"
android:lines="1"
android:maxLines="1"/>
<TextView
android:id="@+id/opinion_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:layout_weight="0.3"
android:maxLines="1"/>
</LinearLayout>
答案 2 :(得分:0)
使用重量!
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@+id/opinion_author"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:maxLines="1"
android:layout_weight="2"/>
<TextView
android:id="@+id/opinion_date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
android:maxLines="1"
android:layout_weight="1"/>
</LinearLayout>
示例:
android:weightSum="3"
分为3部分
android:layout_weight="2"
为作者提供了两部分
android:layout_weight="1"
提供了1个日期部分
玩这些比率直到你感到高兴!
(哦,android:layout_width="0dp"
,因为layout_weights
会覆盖它们)
答案 3 :(得分:0)
在android:layout_width
像:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/opinion_author"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:maxLines="1"/>
<TextView
android:id="@+id/opinion_date"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:lines="1"
android:maxLines="1"/>
</LinearLayout>
您可以在LinearLayout child中使用android:layout_weight
。