当文本变长时,我的应用程序将2个TextView保持在1行

时间:2018-02-23 08:36:50

标签: android textview

keep 2 TextViews in a line without losing characters of 1 textview

我尝试使用RelativeLayoutLinearLayout(因为它们是我通常使用的)但是我没有得到预期的效果。
我希望第一个TextView保持不变。我的意思是显示完整的“第一个textview” - 不是第一个文本...(剪切文本),甚至丢失所有文本。

更新:当第二个textview更短时,第一个textview应该坚持第二个textview。但是当第二个textview更长时,第一个textview不会丢失。

以下是 XML布局的代码:

<?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="wrap_content">

    <TextView
        android:id="@+id/second_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_marginStart="14dp"
        android:maxLines="1"
        android:text="second textviewwwwwwwww"
        android:textSize="20sp"/>

    <TextView
        android:id="@+id/first_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toStartOf="@+id/second_textview"
        android:ellipsize="end"
        android:gravity="end"
        android:maxLines="1"
        android:text="first textview"
        android:textSize="20sp"/>
</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

试试这个

<?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="wrap_content">

<TextView
    android:id="@+id/second_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/first_textview"
    android:maxLines="1"
    android:text="second textviewwwwwwwww"
    android:textSize="20sp"/>

<TextView
    android:id="@+id/first_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:text="first textview"
    android:textSize="20sp"/>

答案 1 :(得分:0)

您应该使用android:layout_weight尝试LinearLayout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="10">

    <TextView
        android:id="@+id/first_textview"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:ellipsize="end"
        android:maxLines="1"
        android:padding="5dp"
        android:text="first textview"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/second_textview"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="7"
        android:ellipsize="end"
        android:maxLines="1"
        android:padding="5dp"
        android:text="second tadkfj adfkj adflkja adfkj"
        android:textSize="20sp" />
</LinearLayout>

答案 2 :(得分:0)

您的答案是水平的LinearLayout。第一个元素的宽度应设置为"wrap_content",第二个元素的宽度应设置为"match_parent"。还将第二个元素的singleLine属性设置为true。因此,您的代码将如下所示:

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


    <TextView
        android:id="@+id/first_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:text="first textview"
        android:textSize="20sp"/>

    <TextView
        android:id="@+id/second_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="14dp"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="second textviewwwwwwwww"
        android:textSize="20sp"/>

</LinearLayout>