Fel*_*lix 64 android android-layout
我希望两个TextView元素并排显示(在列表项中),一个元素向左对齐,一个向右对齐.就像是:
|<TextView> <TextView>|
Run Code Online (Sandbox Code Playgroud)
(|代表屏幕的四肢)
但是,TextView左侧的内容可能太长而无法放在屏幕上.在这种情况下,我想让它椭圆形但仍然显示完整的权利TextView.就像是:
|This is a lot of conte...<TextView>|
Run Code Online (Sandbox Code Playgroud)
我在此进行过多次尝试,同时使用LinearLayout和RelativeLayout,和我想出了唯一的解决办法是使用RelativeLayout,把一个marginRight在左边TextView足够大的权明确TextView.但是,你可以想象,这不是最佳选择.
还有其他解决方案吗?
最终LinearLayout解决方案:
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal"
>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:inputType="text"
/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="0"
android:layout_gravity="right"
android:inputType="text"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
旧的,TableLayout解决方案:
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:shrinkColumns="0"
>
<TableRow>
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
/>
<TextView android:id="@+id/date"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="none"
android:gravity="right"
/>
</TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)
cap*_*ler 19
只是一个想法,为什么不首先在xml布局中声明右边的textview并将其宽度设置为换行内容,android:layout_alignParentRight="true"以及android:gravity="right".然后在左侧声明textview,将其宽度设置为fill parent,android:layout__toLeftOf= {右侧textview的id} RelativeView作为根视图.
通过首先声明正确的文本视图,将首先计算其所需的宽度并占据视图,而左侧的文本视图将占据视图的剩余空间.
我仍然没有试过这个,虽然它可能会给你一些想法.
[更新]
我尝试创建一个xml资源布局......它以某种方式工作......
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/right"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="right"
>
</TextView>
<TextView
android:id="@+id/left"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/right"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:singleLine="true"
android:maxLines="1"
android:text="too looooooooooong ofskgjo sdogj sdkogjdfgds dskjgdsko jgleft"
>
</TextView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
dav*_*pcj 17
LinearLayout的答案对我有同样的问题.作为一个单独的答案发布,因为不清楚什么做了什么和没有为提问者工作.
一个区别.TableLayout对我来说不太理想,因为我有两行数据,我希望底行按照这个问题描述的行为,以及跨越该区域的顶行.这个问题已在另一个SO问题中得到解答:TableLayout中的Colspan,但LinearLayout更简单.
虽然获得正确的宽度花了我一点.我0dp在扩展项目中包含了使用宽度的android lint调整以获得性能.
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal"
>
<TextView
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:ellipsize="end"
android:inputType="text"
/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="0"
android:layout_gravity="right"
android:inputType="text"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23817 次 |
| 最近记录: |