具有不同文本长度的 TextView 在旁边水平对齐
TextView with different text lengths aligning next to horizontally
我正在寻找有效的方法(最好只 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 个字符,如果对于屏幕而言太多,则将其省略。
在上面,当作者太长的视图正在推出日期视图。使用 RelativeLayout
时使用 toRightOf
/toLeftOf
的情况相同。为作者设置 layout_weight=1
将日期保持在父视图组的右边缘,即使作者只有几个字符,所以有很多 space...我正在寻找一种对齐日期的方法在作者的右边,即使它被椭圆化并以...结尾我几乎不知道如何在 Java 中解决它(测量视图或 textpaint,但一切似乎都不是那么有效...)
试试这个代码:
<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>
为您的线性布局添加 android:weightSum = "1"
。
将 android:maxWidth="250dp"
赋给 opinion_author textview。
给 android:layout_weight="0.3"
给 opinion_date 文本视图。
如下所示。
<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>
使用权重!
<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"
给作者 2 个部分
android:layout_weight="1"
给出 1 部分到日期
玩比率直到你满意为止!
(哦,android:layout_width="0dp"
因为 layout_weights
覆盖了它们)
在 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 子项中使用 android:layout_weight
。
我正在寻找有效的方法(最好只 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 个字符,如果对于屏幕而言太多,则将其省略。
在上面,当作者太长的视图正在推出日期视图。使用 RelativeLayout
时使用 toRightOf
/toLeftOf
的情况相同。为作者设置 layout_weight=1
将日期保持在父视图组的右边缘,即使作者只有几个字符,所以有很多 space...我正在寻找一种对齐日期的方法在作者的右边,即使它被椭圆化并以...结尾我几乎不知道如何在 Java 中解决它(测量视图或 textpaint,但一切似乎都不是那么有效...)
试试这个代码:
<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>
为您的线性布局添加 android:weightSum = "1"
。
将 android:maxWidth="250dp"
赋给 opinion_author textview。
给 android:layout_weight="0.3"
给 opinion_date 文本视图。
如下所示。
<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>
使用权重!
<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"
给作者 2 个部分
android:layout_weight="1"
给出 1 部分到日期
玩比率直到你满意为止!
(哦,android:layout_width="0dp"
因为 layout_weights
覆盖了它们)
在 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 子项中使用 android:layout_weight
。