如何在android layout.xml文件中创建2行按钮

时间:2009-08-12 06:15:06

标签: android

我尝试在android layout.xml文件中创建2行按钮。 第一行是左对齐的,第二行是中心对齐的。

这是我的所作所为,但我最终得到了一排按钮。你能告诉我我做错了什么吗?

enter code here
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content"
android:layout_height="fill_parent">
 <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:layout_gravity="bottom|left"
        >
         <Button 
          android:id="@+id/btn1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
        </LinearLayout>
     <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:layout_gravity="bottom|center"
        >
         <Button 
          android:id="@+id/btn2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
       <Button 
          android:id="@+id/btn3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
        </LinearLayout>
</FrameLayout>
</pre>

4 个答案:

答案 0 :(得分:5)

此任务的FrameLayout错误。 像这样使用LinearLayout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="fill_parent">
 <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:layout_gravity="bottom|left"
        >
         <Button
          android:id="@+id/btn1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
        </LinearLayout>
     <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:layout_gravity="bottom|center"
        >
         <Button
          android:id="@+id/btn2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
       <Button
          android:id="@+id/btn3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />
        </LinearLayout>
</LinearLayout>

有关FrameLayout的说明,请访问:http://developer.android.com/reference/android/widget/FrameLayout.html

答案 1 :(得分:2)

我建议不要像这样嵌套LinearLayouts。它效率低下,效率低下,阻碍了Android布局在某些情况下和UI更改中的扩展能力。

此外,它非常耗费CPU!不要这样做并阅读:

http://developer.android.com/training/improving-layouts/optimizing-layout.html

答案 2 :(得分:2)

您可以使用Tablelayout以行的形式显示按钮。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content" 
      android:id="@+id/root"
      android:stretchColumns="*"
      android:background="#000000">
  <TableRow android:layout_margin="0dip"
         android:id="@+id/first_row">
    <Button android:id="@+id/button01" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
    <Button android:id="@+id/button02" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
    <Button android:id="@+id/button03" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
    <Button android:id="@+id/button04" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
    <Button android:id="@+id/button05" 
          android:layout_width="0dip"
          android:layout_weight="1"
          android:padding="15dip" />
  </TableRow>
</TableLayout>

答案 3 :(得分:0)

您也可以只使用一个RelativeLayout而不是所有布局。我已经阅读了很多关于RelativeLayout比LinearLayout使用更少资源的报告。