我有一个左对齐的 TextView 和一个并排的右对齐按钮。我希望按钮在右侧占用尽可能多的空间(取决于其中的文本),左侧文本尽可能多地填充,并在任何溢出时椭圆化。
|Long title that may or may not ellipsi... <Button with text>|
我已经阅读并尝试了许多其他似乎有类似问题的帖子,但没有一个对我有用。我已经尝试过使用带有权重的 LinearLayout 以及分配了 layout_toLeftOf 的 RelativeLayout,但这些都不是我需要的。
这是我的 LinearLayout 代码(去掉了不必要的部分),其中我给左侧 TextView 的 layout_weight 为 1,给按钮的 layout_weight 为 0。这应该为右侧按钮提供所需的所有空间,并为 TextView 提供其余的空间,但相反,左边的标题停止出现,右边的按钮被弄脏到一边并被切断。正如我所看到的那样,我已经尝试将 Text 和 button 的宽度都替换为 0dip ,这并没有改变任何东西。
<LinearLayout
android:layout_height="@dimen/title_bar_height"
android:layout_width="fill_parent"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:layout_gravity="left|center_vertical"
android:gravity="left|center_vertical"
android:textSize="22sp"
android:lines="1"/>
<include layout="@layout/action_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"/>
</LinearLayout>
将 TextView 的 layout_weight 替换为 0 实际上允许右侧按钮完全适合屏幕,但左侧文本仍然不显示。如果我将 TextView 和按钮的 layout_weights 都设置为 0,然后将 TextView 的宽度从 0dip 更改为 wrap_content,则所有内容都会显示,但按钮会被挤压以填充剩余空间(并且里面的文本被截断)。
这是我对 RelativeLayout 的尝试:
<RelativeLayout
android:layout_height="@dimen/title_bar_height"
android:layout_width="wrap_content">
<include layout="@layout/action_buttons"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@layout/action_buttons"
android:gravity="center_vertical"
android:scaleType="center"
android:textSize="22sp"
android:ellipsize="end"
android:lines="1"/>
</RelativeLayout>
一切都很好地对齐并显示出来,除了左边的 TextView(当它太长时)重叠并出现在按钮的顶部而不是截断和省略。android:layout_toLeftOf"@layout/action_buttons" 不应该指定 TextView 应该停留在按钮的左边界吗?
我已经尝试了似乎可以在此站点上找到的与此问题相关的所有内容,但仍然找不到解决方案。任何帮助将不胜感激!