Android - Center TextView Horizontally in LinearLayout
AndroidAndroid LayoutAndroid LinearlayoutLayout GravityAndroid Problem Overview
I have the following basic layout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/title_bar_background">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textAppearance="?android:attr/textAppearanceLarge"
android:padding="10dp"
android:text="HELLO WORLD" />
</LinearLayout>
<LinearLayout>
It seems like the xml is correct but the text is aligned to the left. The textview takes up the entire width of the parent and the textview is set to be centered. Not sure what the problem is...
Android Solutions
Solution 1 - Android
What's happening is that since the the TextView is filling the whole width of the inner LinearLayout it is already in the horizontal center of the layout. When you use android:layout_gravity
it places the widget, as a whole, in the gravity specified. Instead of placing the whole widget center what you're really trying to do is place the content in the center which can be accomplished with android:gravity="center_horizontal"
and the android:layout_gravity
attribute can be removed.
Solution 2 - Android
If you set <TextView>
in center in <Linearlayout>
then first put android:layout_width="fill_parent"
compulsory
No need of using any other gravity
<LinearLayout
android:layout_toRightOf="@+id/linear_profile"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="It's.hhhhhhhh...."
android:textColor="@color/Black"
/>
</LinearLayout>
Solution 3 - Android
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/title_bar_background">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"
android:padding="10dp"
android:text="HELLO WORLD" />
</LinearLayout>
Solution 4 - Android
Use android:gravity="center"
in TextView
instead of layout_gravity
.
Solution 5 - Android
Just use: android:layout_centerHorizontal="true"
It will put the whole textview in the center