Android 有两个并排的文本视图,第一个是拉伸和限制的,第二个是固定的

Android 有两个并排的文本视图,第一个是拉伸和限制的,第二个是固定的,android,android-layout,Android,Android Layout,我一直试图获得某种布局,但我所有的尝试都失败了 我在有限的空间内有两个文本视图。只要有足够的空间来显示这两个,我希望它们一个接一个地显示: | T1 T2222 | | T111111 T2222 | 但当空间不足时,我只希望第一个被省略或以其他方式剪切,例如: | T1111111... T2222 | 这可能会有帮助-或没有-这两个都应该只有一行 第二个的宽度可以固定,这可能有帮助,也可能没有帮助 我试过的想法,但这种情况是不同的,因为他们的T2是为了锚定在右

我一直试图获得某种布局,但我所有的尝试都失败了

我在有限的空间内有两个文本视图。只要有足够的空间来显示这两个,我希望它们一个接一个地显示:

| T1 T2222          |
| T111111 T2222     |
但当空间不足时,我只希望第一个被省略或以其他方式剪切,例如:

| T1111111... T2222 |
这可能会有帮助-或没有-这两个都应该只有一行

第二个的宽度可以固定,这可能有帮助,也可能没有帮助

  • 我试过的想法,但这种情况是不同的,因为他们的T2是为了锚定在右边,而我想让T2只是跟随T1

  • 我已经尝试为T2指定一个minWidth,但它似乎没有得到认可;平面宽度是,但我似乎无法控制T1的行为

  • 我涉猎过重量,但没有找到解决问题的方法。但这可能是我的经验不足

  • 我可以为T1指定一个maxWidth,我很荣幸它可以实现我的愿望,但问题是有限空间的整个宽度没有指定

在这一点上,我开始认为没有办法做到这一点——除非可能是通过编程实现的,这是我想要避免的途径


谢谢您的建议。

是否将两个字符串连接起来,并将结果放入一个
TextView
,使用
ellipsize=“middle”
设置工作

或者布局,其中第二个文本视图与右侧对齐

| T1          T2222 |
| T111111     T2222 |
| T1111111... T2222 |
更新
利用第二个文本视图的宽度可以固定的功能,下面的
RelativeLayout
提供所需的布局(通过将第二个视图的宽度明确设置为60dp):


宽度两个
文本视图之间的5dp间隙

1。我没有想到这一点,这是一个有趣的想法,虽然不完全是设计师的想法。谢谢2.不,T2必须在T1的旁边。请看一下我更新中的布局,我希望它能为您工作。非常感谢!)我已经放弃了,但是你的例子很好用。我会投票支持答案,但我今天刚注册。。。只是为了记录:如果没有重力=“填充”,相对长度只会从右侧填充;如果不是首先声明T2,T2将被省略,而不是T1。我很高兴,你成功了,更高兴的是,你没有满足于你让我学到的知识。非常感谢。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:gravity="fill">
    <TextView android:id="@+id/secondText" 
        android:layout_width="60dp" android:layout_height="wrap_content"
        android:singleLine="true" android:layout_alignParentRight="true" />
    <TextView android:id="@+id/dynamicText" 
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_marginRight="5dp" android:layout_toLeftOf="@id/secondText"
        android:singleLine="true" android:ellipsize="end"  />   
</RelativeLayout>
| T1 T2222          |
| T111111 T2222     |
| T1111111... T2222 |