RelativeLayout在一条水平线上有两个文本视图,带有省略号支持

时间:2015-04-22 18:59:29

标签: android android-layout xamarin.android

我正在尝试设置一个RelativeLayout,其中一行显示两个TextView。第一个TextView应该对齐左侧。第二个TextView应该向右对齐。如果第二个TextView文本将扩展为与第一个TextView重叠,那么我想椭圆化中间的文本。我不想对第一个TextView进行椭圆化。

这就是我想出的。问题是第二个TextView直接位于第一个TextView的右侧,而不是与最右侧对齐。好像我不能同时使用alignParentRight和toRightOf。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/Left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="[DetailedType]"/>
    <TextView
        android:id="@+id/Right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/Left"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:ellipsize="middle"
        android:singleLine="true"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="[CustomerName]"/>
</RelativeLayout>

2 个答案:

答案 0 :(得分:3)

实现此ID的基本思路是在RelativeLayout的水平中心添加虚拟不可见视图,并将左TextView告诉它左侧和右侧{{1在它的右侧......见下文

关于将其与右侧对齐的问题,您应该拉伸TextView以占用屏幕的一半,然后在TextView上设置TextView

android:gravity="right"

但您可以随时使用<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <View android:id="@+id/dummy" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/Left" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toLeftOf="@id/dummy" android:text="[DetailedType]" android:textAppearance="?android:attr/textAppearanceMedium"/> <TextView android:id="@+id/Right" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toRightOf="@id/Left" android:gravity="right" android:ellipsize="middle" android:singleLine="true" android:text="[CustomerName]" android:textAppearance="?android:attr/textAppearanceMedium"/> </RelativeLayout> 来完成工作

LinerLayout

答案 1 :(得分:0)

根据我的理解,您只能在正确的视图中错过android:gravity="right"