Intereting Posts
Как получить данные из AsyncTasks doInBackground ()? Изменение цвета по умолчанию для Android CheckBox Check Mark Как использовать команду su над оболочкой adb? Поддерживает ли Android файлы .apk? Если да где? Android-сообщение между классами Динамическое добавление нескольких фрагментов в макет моей активности Xml getText возвращает null – Android Внеэкранная рендеринг с использованием PixelBuffer или FBO для сохранения всех графических изображений в растровом (а затем в bmp / ​​jpg) желаемого размера (> 4096) с использованием OpenGL ES 2.0 HTTPS с самоподписанными сертификатами SSL-решений … Решение или лучший способ? Поймать исключение из дочерней активности в родительской деятельности Как показать логотип, иконку, заголовок, субтитры панели инструментов, когда они завернуты в CollapsingToolbarLayout? Конфигурация зависимостей Android Приложение для Android, состояние активности (бег, не работает, передняя / задняя часть) Android Studio – удалить предупреждение безопасности TimeoutException в MediaRecorder.finalize () через 10 секунд

Как центрировать контент внутри линейного макета?

Я пытаюсь LinearLayout ImageView внутри LinearLayout горизонтально и вертикально, но я просто не могу этого сделать. Основная причина, по которой я не использую RelativeLayout для этого, – это то, что мне нужен layout_weight (моя Activity состоит из четырех столбцов, которые должны быть разделены поровну, а также реагировать на разные ширины экрана, причем каждый столбец имеет центрированный и нерастянутый ImageView ).

Вот мой xml:

 <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:background="#000" android:baselineAligned="false" android:gravity="center" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".Main" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" > <ImageView android:id="@+id/imageButton_speak" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/image_bg" android:src="@drawable/ic_speak" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" > <ImageView android:id="@+id/imageButton_readtext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/image_bg" android:src="@drawable/ic_readtext" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" > <ImageView android:id="@+id/imageButton_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/image_bg" android:src="@drawable/ic_edit" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" > <ImageView android:id="@+id/imageButton_config" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/image_bg" android:src="@drawable/ic_config" /> </LinearLayout> </LinearLayout> 

Solutions Collecting From Web of "Как центрировать контент внутри линейного макета?"

android:gravity управляет выравниванием своих детей,

android:layout_gravity обрабатывает выравнивание самого себя.

Поэтому используйте один из них.

 <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:background="#000" android:baselineAligned="false" android:gravity="center" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".Main" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" > <ImageView android:id="@+id/imageButton_speak" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/image_bg" android:src="@drawable/ic_speak" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" > <ImageView android:id="@+id/imageButton_readtext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/image_bg" android:src="@drawable/ic_readtext" /> </LinearLayout> ... </LinearLayout> 

или

 <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:background="#000" android:baselineAligned="false" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".Main" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" > <ImageView android:id="@+id/imageButton_speak" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/image_bg" android:src="@drawable/ic_speak" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" > <ImageView android:id="@+id/imageButton_readtext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/image_bg" android:src="@drawable/ic_readtext" /> </LinearLayout> ... </LinearLayout> 
 android:layout_gravity is used for itSelf of layout 

LinearLayout android:gravity="center" для детей вашего LinearLayout

Поэтому ваш код должен быть

 <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:gravity="center" android:layout_weight="1" > 

Я попробовал решения здесь, но у меня есть проблема и попробую некоторые изменения. Я помню, что неправильно в layout_width должно быть wrap_content как это

 <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_weight="1" >