我的问题非常类似于如何获得布局,其中一个文本可以增长和椭圆化,但不会吞噬布局上的其他元素,但请阅读下面为什么我不能使用那里提出的TableLayouts.
我正在尝试创建一个基本上如下所示的listview行:
| TextView | 查看1 | 查看2 |
所有视图都包含可变宽度元素.TextView具有ellipsize ="end"设置.视图1应该对齐TextView的左侧,而视图2应该对齐到屏幕的右侧.因此,通常,View 1和View 2之间会有空格.随着TextView中的文本变长,TextView应该增长,将View 1推向右侧,直到没有剩下的空白.然后,ellipsize应该启动,在TextView中剪切文本并在末尾添加省略号("...").
所以,结果看起来应该是这样的:
+----------------------------------------+
| short text [view1] [view2] |
+----------------------------------------+
| long text with ell ... [view1] [view2] |
+----------------------------------------+
Run Code Online (Sandbox Code Playgroud)
我试过了:
这是我试过的GridLayout:
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_gravity="left|fill_horizontal"
android:ellipsize="end"
android:singleLine="true"
android:text="Long text to demonstrate problem with TextView in GridLayout taking up too much space despite ellipsis" />
<TextView
android:layout_gravity="left"
android:text="(view1)" />
<TextView
android:layout_gravity="right"
android:text="(view2)" />
</GridLayout>
Run Code Online (Sandbox Code Playgroud)
视图1和视图2不是真正的TextViews,我只是在示例中使用它们来简化操作.
有没有办法在不使用TableLayouts的情况下实现这一目标?
编辑: 根据要求,这是我尝试用RelativeLayout解决这个问题.在这种情况下,TextView占据了屏幕的整个宽度,因此view1和view2都不可见.
<RelativeLayout
android:layout_width="match_parent" …
Run Code Online (Sandbox Code Playgroud)