Нужна помощь по центру EditText в линейной компоновке

Я пытаюсь центрировать edittext вертикально и горизонтально в линейном макете, но он не работает. Очень простая проблема.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/login"> <EditText android:layout_width="150dp" android:layout_height="wrap_content" android:background="@drawable/loginbutton" android:text="Username" android:layout_gravity="center" android:textSize="25dp" android:gravity="center_horizontal|center_vertical" android:textColor="#000000" android:layout_margin="10dp" android:id="@+id/username"> </EditText> 

В то же время я попытаюсь перейти на релятивизацию.

LinearLayout не поддерживает центрирование в том направлении, в котором оно хранит элементы, насколько я знаю. Если LinearLayout имеет решающего значения (что в вашем случае это не должно быть так, как вам также нужно центрирование), я бы рекомендовал вам переключиться на RelativeLayout .
С RelativeLayout вы можете установить атрибут android:layout_centerInParent="true" в EditText чтобы получить его в центре.

Использование силы тяжести влияет на тяжесть содержимого указанного элемента пользовательского интерфейса, это означает (в данном случае), что текст внутри EditText будет центрирован. Чтобы централизовать элемент пользовательского интерфейса, вам нужно определить layout_gravity, поскольку это гравитация, которую элемент UI хранит внутри своего родителя. Код, отправленный OP, будет выполнять горизонтальный центр, но не вертикальный центр.

В качестве альтернативы вы можете использовать RelativeLayout

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/login" android:orientation="vertical" > <EditText android:id="@+id/username" android:layout_width="150dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@drawable/loginbutton" android:layout_centerInParent="true" android:text="Username" android:textColor="#000000" android:textSize="25dp" > </EditText> </RelativeLayout> в систему <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/login" android:orientation="vertical" > <EditText android:id="@+id/username" android:layout_width="150dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@drawable/loginbutton" android:layout_centerInParent="true" android:text="Username" android:textColor="#000000" android:textSize="25dp" > </EditText> </RelativeLayout> 

Попробуй это:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/login" android:layout_centerVertical="true" android:layout_centerInParent="true"> в систему  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/login" android:layout_centerVertical="true" android:layout_centerInParent="true">