Layout_centerInParent в RelativeLayout не центрируется на эмуляторе или устройстве

У меня есть фрагмент с таким макетом:

<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent">

    <TextView
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:text = "My Fragment"
        android:textSize = "30sp"
        android:layout_centerInParent = "true"/>
</RelativeLayout>

В предварительном просмотре Android Studio я вижу это:

Layout_centerInParent в RelativeLayout не центрируется на эмуляторе или устройстве

Что хорошо, но на эмуляторе или на реальном устройстве я вижу:

Layout_centerInParent в RelativeLayout не центрируется на эмуляторе или устройстве

Что мне не хватает? Как мне центрировать этот текст в родительском элементе?

Родительский макет — это FrameLayout:

<LinearLayout
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:orientation = "vertical">

    <android.support.v7.widget.Toolbar
        android:layout_width = "match_parent"
        android:layout_height = "?attr/actionBarSize"
        android:id = "@+id/toolbar"/>

    <FrameLayout
        android:layout_width = "wrap_content"
        android:layout_height = "match_parent"
        android:id = "@+id/frame_layout">

    </FrameLayout>
</LinearLayout>

опубликовать XML-файл родителя также.

Rumit Patel 03.04.2019 10:36

Согласен с @RumitPatel. Попробуйте проверить, есть ли у родительского тега android:layout_width = "match_parent"

Yuri Popiv 03.04.2019 10:40

выложи полный xml..

John Joe 03.04.2019 10:40

Измените FrameLayout android:layout_width = "wrap_content" на android:layout_width = "match_parent"

Yuri Popiv 03.04.2019 10:42

Просто установите android:layout_width = "match_parent" на fragmeLayout. и вы настроены.

Rumit Patel 03.04.2019 10:45
3
5
142
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуйте добавить эти свойства:

 android:layout_centerHorizontal = "true"
 android:layout_centerVertical = "true"

Спасибо, но у меня такое же поведение.

Asyl Paitesh 03.04.2019 10:39

Это не сработает, потому что в этом коде FrameLayout есть android:layout_width = "wrap_content". Проверьте ответ @Nilesh Rathod - это хороший ответ

Tamir Abutbul 03.04.2019 10:55

Родительский макет не был добавлен, когда я ответил на вопрос. @ТамирАбутбул

Vivek Makwana 03.04.2019 11:00

Хорошо, что я не знал

Tamir Abutbul 03.04.2019 11:01
Ответ принят как подходящий

Вам нужно изменить ширину вашего FrameLayout

Измените ширину FrameLayout на android:layout_width = "match_parent"

ОБРАЗЕЦ КОДА

<LinearLayout
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:orientation = "vertical">

    <android.support.v7.widget.Toolbar
        android:layout_width = "match_parent"
        android:layout_height = "?attr/actionBarSize"
        android:id = "@+id/toolbar"/>

    <FrameLayout
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:id = "@+id/frame_layout">

    </FrameLayout>
</LinearLayout>

Никогда не думал о родительском макете. match_parent справился. Большое спасибо!

Asyl Paitesh 03.04.2019 10:46

В вашем компоновка кадра есть ошибка. Просмотрите его документацию, чтобы прочитать подробности.

Исправьте макет фрейма в родительском XML-содержимом:

<FrameLayout
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:id = "@+id/frame_layout"/>

Другие вопросы по теме