我是Android的新手,我已完成任务。
如果文本太长,我想用省略号将三个相邻的TextView对齐。目前我正在使用下面的代码将我的TextView相互对齐,但我的问题是如果文本太长,下面的代码没有放下省略号。我有一些技巧可以使用来自here的toleftof
和torightof
,但在我的情况下,它会转到循环依赖,如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项目。
添加的代码适用于上面突出显示的部分。我修复了tagicon和amp;的重叠。文本。现在只有两个问题。
1)最后一个标签与右对齐图像重叠。 2)如果TextView文本很短,则标签之间会显示间隙
如何解决?
答案 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"