Я использую линейный макет для отображения довольно легкого начального экрана. Он имеет 1 кнопку, которая должна центрироваться на экране как горизонтально, так и вертикально. Однако независимо от того, что я пытаюсь сделать, кнопка будет выравнивать центр сверху. Я включил XML ниже, кто-нибудь может указать мне правильное направление?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@drawable/findme"></ImageButton>
</LinearLayout>
layout_width
значение «wrap_content». Впоследствии онlayout_gravity
сделал то, что должен был сделать!Ответы:
Если вы хотите центрировать элемент по центру экрана, не используйте a, так
LinearLayout
как они предназначены для отображения количества элементов в строке.Используйте
RelativeLayout
вместо.Так что замените:
для соответствующего
RelativeLayout
варианта:Итак, ваш файл макета будет выглядеть так:
источник
Центр, используя LinearLayout:
источник
Вы пытались определить
android:gravity="center_vertical|center_horizontal"
внутри макета и настройкиandroid:layout_weight="1"
в изображении?источник
android:weight="1"
нажимать кнопку, чтобы отцентрировать ее.)Обычно используемый метод, который работает с линейным макетом, состоит в том, чтобы установить свойство для кнопки изображения
Вы можете выбрать выравнивание по левому краю, по центру или по правому краю каждого объекта в линейном макете. Обратите внимание, что приведенная выше строка точно такая же, как
источник
Добавь это
В LinearLayout.
источник
android:gravity="center"
Если вы используете,
LinearLayout
вы можете добавить центр тяжести:источник
легко с этим
источник
Вы можете использовать
RelativeLayout
.источник
Приведенный выше код будет работать.
источник
полный и рабочий образец с моей машины ...
источник
Согласно документации Android для атрибутов XML android: layout_gravity , мы можем сделать это легко :)
источник
Установите в true
android:layout_alignParentTop="true"
иandroid:layout_centerHorizontal="true"
в кнопке, вот так:источник
Вы также можете попробовать этот код:
источник
просто используйте (чтобы сделать его в центре вашего макета)
и использовать
изменить положение
источник
Вы также можете установить ширину LinearLayout к
wrap_content
и использованияandroid:layout_centerInParent
,android:layout_centerVertical="true"
:источник
Это работает для меня.
источник
Ты пробовал это?
источник
использование
источник
Было бы проще использовать относительные макеты, но для линейных макетов я обычно центрирую, убедившись, что ширина соответствует родительской:
а затем просто дать поля справа и слева соответственно.
источник