我有这个XML代码,它生成一个按钮,一个textview和另一个按钮,如何让按钮显示在最左边,中心的textview和最右边的最后一个按钮?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel">
</Button>
<TextView android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Place">
</TextView>
<Button android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save">
</Button>
</LinearLayout>
答案 0 :(得分:9)
我建议使用RelativeLayout,它会让事情变得更容易。
通过使用RelativeLayout,您可以将textview设置为父级中心水平或父级中心
在这样做之后,您可以将这些按钮直接连接到远侧,方法是将它们与父侧对齐,或者将它们直接连接到文本视图的侧面,或者添加一个小填充,然后填充你的间距。
答案 1 :(得分:2)
您需要使用权重属性。可以把它想象成让android知道它应该给每个项目的宽度百分比。
您需要将所有3个项目的宽度设置为0dip并添加权重属性
<Button android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:layout_width="0dip"
android:layout_weight="2" >
</Button>
<TextView android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Place"
android:layout_width="0dip"
android:layout_weight="1" >
</TextView>
<Button android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:layout_width="0dip"
android:layout_weight="2" >
</Button>
使用重量值,您将了解它的工作原理:)
在此之后,您可以使用gravity属性将文本移动到中心/左侧或右侧。
答案 2 :(得分:1)
如果你想保留LinearLayout,你需要做的是:创建一个TableRow,然后将所有项目(Both按钮和Textview)放入其中。这将创建一条直线,所有项目整齐排列。这段代码对我有用,对不起我不能张贴它的截图(新的,没有足够的声望点),但它对我有用,我希望它对你有帮助。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp">
<Button android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:layout_marginRight="30dp"
android:layout_marginLeft="10dp">
</Button>
<TextView android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Place"
android:layout_gravity="center_horizontal"
android:layout_marginRight="30dp">
</TextView>
<Button android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:layout_gravity="right">
</Button>
</TableRow>
</LinearLayout>