我怎么能对齐textview的中心水平



我已经创建了这个xml:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="11" >
 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal"
    android:background="@color/tabs_color">
    <Button
        android:layout_gravity="start|center"
        android:layout_height="30dp"
        android:layout_width="30dp"
        android:id="@+id/returnButton" 
        android:layout_marginStart="10dp"
        android:layout_marginLeft="10dp"
        android:background="@drawable/top_menu_back_selector"/>
   <TextView android:id="@+id/textView1" 
       android:background="@color/black"
       android:layout_gravity="center|center"
       android:layout_width="180dp" 
       android:layout_height="match_parent" 
       android:singleLine="true"
       android:textAppearance="?android:attr/textAppearanceLarge"
       android:textColor="@color/white">
    </TextView>
       </LinearLayout>
 <ListView
    android:id="@+id/listView"
    android:layout_width="wrap_content"
    android:layout_height="0dp" 
    android:layout_weight="9"
    android:fillViewport="true" />
<FrameLayout
    android:background="@color/tabs_color"
    android:layout_width="match_parent"
    android:layout_weight="1"
    android:layout_height="0dp"
    android:orientation="horizontal">
      <Button
        android:layout_height="30dp"
        android:layout_width="30dp"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp"
        android:background="@drawable/menu_button_selector"
        android:id="@+id/OptionsButton"
        android:layout_gravity="start|center_vertical"/>
      <Button
        android:layout_height="30dp"
        android:layout_width="30dp"
        android:layout_marginRight="10dp"
        android:layout_marginEnd="10dp"
        android:background="@drawable/add_button_selector"
        android:layout_gravity="end|center_vertical"
        android:id="@+id/AddItemButton"/>
      </FrameLayout>
   </LinearLayout>

但作为结果,我有textview左对齐正好在按钮后面的returnButton

所以我得到我的textview位置就像:returnButtonTextView ..................我想要:returnButton……TextView ............

((TextView) listname).setGravity(Gravity.CENTER);

怎么了?

如果你在创建布局时需要更大的灵活性,你最好使用RelativeLayout而不是LinearLayout

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal"
    android:background="@color/tabs_color">
    <Button
        android:layout_gravity="start|center"
        android:layout_height="30dp"
        android:layout_width="30dp"
        android:id="@+id/returnButton"
        android:layout_marginStart="10dp"
        android:layout_marginLeft="10dp"
        android:background="@drawable/top_menu_back_selector" />
    <TextView
        android:id="@+id/textView1"
        android:background="@color/black"
        android:layout_gravity="center|center"
        android:layout_width="180dp"
        android:layout_height="match_parent"
        android:singleLine="true"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/white" />
</LinearLayout>

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal"
    android:background="@color/tabs_color">
    <Button
        android:layout_centerVertical="true"
        android:layout_height="30dp"
        android:layout_width="30dp"
        android:id="@+id/returnButton"
        android:layout_marginStart="10dp"
        android:layout_marginLeft="10dp"
        android:background="@drawable/top_menu_back_selector" />
    <TextView
        android:id="@+id/textView1"
        android:background="@color/black"
        android:gravity="center"
        android:layout_centerInParent="true"
        android:layout_width="180dp"
        android:layout_height="match_parent"
        android:singleLine="true"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/white" />
</RelativeLayout>

尝试更改:

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:background="@color/tabs_color">
        <Button
            android:layout_gravity="start|center"
            android:layout_height="30dp"
            android:layout_width="30dp"
            android:id="@+id/returnButton"
            android:layout_marginStart="10dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/top_menu_back_selector"/>
        <View
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1"/>
        <TextView android:id="@+id/textView1"
            android:background="@color/black"
            android:layout_gravity="center|center"
            android:layout_width="180dp"
            android:textAlignment="center"
            android:layout_height="match_parent"
            android:singleLine="true"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="@color/white"/>
        <View
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1"/>
    </LinearLayout>

最新更新