我已经创建了这个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>