-2

This is my xml code i want keep center Textview inside linear layout which contain textview and view but i want text view shout center in linear layout bottom to view i.e button textview should center from top view and bottom linearLayout .

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/no_vouchers_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<android.support.v7.widget.CardView
    android:id="@+id/xxlayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/header_height"
    android:visibility="gone"
    tools:visibility="visible">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="@dimen/margin_12"
        android:orientation="vertical">

        <TextView
            android:id="@+id/xxmessage"
            style="@style/Typeface.Body.TextMidGrey"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lineSpacingExtra="@dimen/tfl_6"
            tools:text="KJGSAHJDGJKSGDASAGDHJGAS" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="@dimen/margin_16"
            android:background="@color/text_light_grey" />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TextView

                android:id="@+id/button"
                style="@style/Typeface.Body.Bold.White"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/margin_16"
                android:paddingBottom="@dimen/padding_12"
                android:paddingTop="@dimen/padding_12"
                android:background="@drawable/welcome_screen_button_selector"
                android:layout_centerHorizontal="true"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="@string/convert_points_to_vouchers"
                android:textAllCaps="false" />
        </LinearLayout>

    </LinearLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
AskNilesh
  • 67,701
  • 16
  • 123
  • 163
Anil Thakur
  • 123
  • 1
  • 11
  • Can you show your required UI pic. It will be easy to understand by pic than hundred of words. – Khemraj Sharma Aug 13 '18 at 05:03
  • Possible duplicate of [How to center a textview inside a linearlayout](https://stackoverflow.com/questions/13474982/how-to-center-a-textview-inside-a-linearlayout) – ADM Aug 13 '18 at 05:20
  • problem with me that inside linear layout there is view so i have keep center button textview with view and bottom layout in linear layout – Anil Thakur Aug 13 '18 at 05:23

3 Answers3

1

Use android:layout_width="match_parent" & android:gravity="center" your TextView it will work

Use this

 <TextView
     android:id="@+id/xxmessage"
     style="@style/Typeface.Body.TextMidGrey"
     android:layout_width="match_parent"
     android:gravity="center"
     android:layout_height="wrap_content"
     android:lineSpacingExtra="@dimen/tfl_6"
     tools:text="KJGSAHJDGJKSGDASAGDHJGAS" />

Instead of this

<TextView
      android:id="@+id/xxmessage"
      style="@style/Typeface.Body.TextMidGrey"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:lineSpacingExtra="@dimen/tfl_6"
      tools:text="KJGSAHJDGJKSGDASAGDHJGAS" />

SAMPLE CODE

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/no_vouchers_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.CardView
        android:id="@+id/xxlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/header_height"
        android:visibility="gone"
        tools:visibility="visible">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="@dimen/margin_12"
            android:orientation="vertical">

            <TextView
                android:id="@+id/xxmessage"
                style="@style/Typeface.Body.TextMidGrey"
                android:layout_width="match_parent"
                android:gravity="center"
                android:layout_height="wrap_content"
                android:lineSpacingExtra="@dimen/tfl_6"
                tools:text="KJGSAHJDGJKSGDASAGDHJGAS" />

            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginTop="@dimen/margin_16"
                android:background="@color/text_light_grey" />
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="vertical">

                <TextView    
                    android:id="@+id/button"
                    style="@style/Typeface.Body.Bold.White"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/margin_16"
                    android:paddingBottom="@dimen/padding_12"
                    android:paddingTop="@dimen/padding_12"
                    android:background="@drawable/welcome_screen_button_selector"
                    android:layout_centerHorizontal="true"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:text="@string/convert_points_to_vouchers"
                    android:textAllCaps="false" />
            </LinearLayout>

        </LinearLayout>
    </android.support.v7.widget.CardView>
</RelativeLayout>
AskNilesh
  • 67,701
  • 16
  • 123
  • 163
0

Try this android:layout_gravity="center"

  <TextView
            android:id="@+id/xxmessage"
            style="@style/Typeface.Body.TextMidGrey"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:lineSpacingExtra="@dimen/tfl_6"
            tools:text="KJGSAHJDGJKSGDASAGDHJGAS" />
mehul chauhan
  • 1,792
  • 11
  • 26
0

Creating nested layout in android can result in varoious performance issues. I would recommend you to use ConstraintLayout instead of Linear layout. ConstraintLayout is helpful in building responsive UI. With ConstraintLayout you can easily drag/drop any element and constrain them according to your activity.

Sushant Somani
  • 1,450
  • 3
  • 13
  • 31