Android:在相对布局中需要多个TextView的省略号

时间:2014-03-26 06:06:05

标签: android relativelayout

我是Android的新手,我已完成任务。

如果文本太长,我想用省略号将三个相邻的TextView对齐。目前我正在使用下面的代码将我的TextView相互对齐,但我的问题是如果文本太长,下面的代码没有放下省略号。我有一些技巧可以使用来自heretoleftoftorightof,但在我的情况下,它会转到循环依赖,如here所述。

<RelativeLayout
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_toRightOf="@+id/reminderText">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/noteTagOne"
                    android:ellipsize="end"
                    android:singleLine="true"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/noteTagTwo"
                    android:ellipsize="end"
                    android:singleLine="true"
                    android:layout_toRightOf="@+id/noteTagOne"
                    android:layout_marginLeft="5sp"
                    />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/noteTagThree"
                    android:layout_toRightOf="@+id/noteTagTwo"
                    android:ellipsize="end"
                    android:singleLine="true"
                    android:layout_marginLeft="5sp"/>
     </RelativeLayout>

我希望输出为,

Tag1... Tag2... Tag3...  

基本上,我想要一些想法,无论是在xml我可以实现这一点还是需要以编程方式进行,因为TextView文本是动态的我无法修复maxLength,有时只有单个标签可能存在,那时它应该采用全文。

注意:我正在使用Xamarin中的C#开发Android项目。

enter image description here

添加的代码适用于上面突出显示的部分。我修复了tagicon和amp;的重叠。文本。现在只有两个问题。

1)最后一个标签与右对齐图像重叠。 2)如果TextView文本很短,则标签之间会显示间隙

如何解决?

3 个答案:

答案 0 :(得分:1)

尝试此解决方案

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/noteTagOne"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:maxWidth="100dp"
    android:singleLine="true"
    android:text="Tag111111111111111111"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/noteTagTwo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5sp"
    android:layout_toRightOf="@+id/noteTagOne"
    android:ellipsize="end"
    android:maxWidth="100dp"
    android:singleLine="true"
    android:text="Tag2222222222222222"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/noteTagThree"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5sp"
    android:layout_toRightOf="@+id/noteTagTwo"
    android:ellipsize="end"
    android:maxWidth="100dp"
    android:singleLine="true"
    android:text="Tag3333333333333333"
    android:textAppearance="?android:attr/textAppearanceLarge" />

答案 1 :(得分:0)

使用这个android:ellipsize =“marquee”它会起作用

答案 2 :(得分:0)

android:ellipsize="marquee" 

android:ellipsize="end"
android:maxLines="1"
android:scrollHorizontally="true"
android:singleLine="true"