Java android две строки и вторая не отображается

Рейтинг: -1Ответов: 1Опубликовано: 15.03.2023

У меня такая проблема: есть две строки

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:background="#a1a1a1"
    android:text="Главная"
    />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/main1" />

И вторая строка у меня не отображается в приложении.

Что я делаю не правильно?

Ответы

▲ 1Принят

У вас в LinearLayout не указана ориентация. Она может быть либо vertical, либо horizontal. Если не указано, по умолчанию используется горизонтальная ориентация.

У первой вьюшки ширина задана как android:layout_width="match_parent", т.е. она занимает всю доступную ширину родительского элемента. Вот и получается, что второй вьюшке просто не остается места, она как бы находится в невидимой правой части экрана.

Можно исправить явно задав ориентацию как вертикальную. Вторая вьюшка в этом случае отобразится ниже первой.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="top"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#a1a1a1"
        android:text="@string/hello_world" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#e1e1e1"
        android:text="@string/hello_world" />
</LinearLayout>

Так же заметил, что в одном из TextView вы используете android:layout_width="fill_parent". Значение fill_parent эквивалентно по действию на match_parent, но оно устарело уже очень давно, поэтому лучше используйте второй вариант.