У меня есть следующий макет, заключенный в linearlayout:

<LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="1"
                            android:gravity="center_vertical"
                            android:orientation="horizontal">

                            <Lato_TextView
                                android:id="@+id/person_name"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:maxLines="2"
                                android:text="Aadil Holy"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                exaprojects:fontName="Lato-Regular.ttf" />

                            <Lato_TextView
                                android:id="@+id/textView2"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginLeft="05dp"
                                android:layout_marginStart="05dp"
                                android:gravity="start|center"
                                android:text="(#884)"
                                android:textSize="14sp"
                                exaprojects:fontName="Lato-LightItalic.ttf" />
                        </LinearLayout>

Виды располагаются с горизонтальным выравниванием внутри вида карты, проблема здесь в том, что если текст в person_name слишком длинный, текст в textView2 обрезается и отображается вертикально, что запускает этот макет. Как это побороть?

enter image description here

1
User3 21 Окт 2015 в 09:19

2 ответа

Лучший ответ

Вместо этого попробуйте использовать RelativeLayout. Пример:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent">
    <TextView
        android:id="@+id/person_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxLines="2"
        android:text="Aadil Holy"
        android:textColor="#000000"
        android:textSize="16sp"
        android:layout_toLeftOf="@+id/textView2"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="05dp"
        android:layout_marginStart="05dp"
        android:gravity="start|center"
        android:text="(#884)"
        android:textSize="14sp"
        android:layout_alignParentRight="true" />
0
qnd-S 21 Окт 2015 в 06:43

Первый подход:

android:ems or setEms(n)

"Делает TextView шириной столько же ems"

Примечание: но только тогда, когда layout_width установлен на "wrap_content". Другие значения layout_width переопределяют настройку ширины em.

Вы также можете попробовать это:

android:singleLine="false"
0
mTrebusak 21 Окт 2015 в 06:40