0

我设计了一个 XML 布局,如下图所示:

表格布局中的四个按钮

我需要在屏幕上平等地放置四个按钮,但我无法让它工作。我尝试了我能想到的所有可能的更改。下面是布局的 XML:

<RelativeLayout  
   android:layout_width="fill_parent"  
   android:layout_height="40dp" 
   android:id="@+id/buttonlayout"
   android:layout_alignBottom="@id/framelayout">


<TableLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android">

<TableRow>

  <Button
    android:id="@+id/previous"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/previous_icon" />

 <Button
    android:id="@+id/button_startprint"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/print_icon"
    android:padding="10dp" />

<Button
    android:id="@+id/button_cam"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/cam_icon"
    android:padding="10dp" />

<Button
    android:id="@+id/next"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/next_icon"
    android:hapticFeedbackEnabled="true"/>

 </TableRow>  
 </TableLayout> 
</RelativeLayout> 

谁能帮我解决这个问题?

4

7 回答 7

1

如果您为所有四个按钮设置了属性 android:weight="1",它们应该被适当地隔开,因为 TableRow 是 LinearLayout 的子类。为了获得更好的性能,建议也使用 android:layout_width="0dp" 。

于 2012-06-01T11:54:05.613 回答
1

使用android:layout_weight=1, 和 使用android:layout_width="0dp"来制作等重的按钮..

编辑 例如将您的按钮定义为

 <Button
        android:id="@+id/button_cam"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=1
        android:background="@drawable/cam_icon"
        android:padding="10dp" />
于 2012-06-01T11:52:58.303 回答
1

尝试将所有按钮宽度替换为layout_width="0dp"并添加layout_weight="1"

尝试使用 9-patch 图像以避免图像被拉伸的事实

  <TableRow>

      <Button
        android:id="@+id/previous"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_menu_compass"
        android:layout_weight="1" />

     <Button
        android:id="@+id/button_startprint"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_menu_mylocation"
        android:padding="10dp" 
        android:layout_weight="1"/>

    <Button
        android:id="@+id/button_cam"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_menu_mapmode"
        android:padding="10dp"
        android:layout_weight="1" />

    <Button
        android:id="@+id/next"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_menu_about"
        android:hapticFeedbackEnabled="true"
        android:layout_weight="1"/>

 </TableRow> 
于 2012-06-01T12:02:59.977 回答
1

嗨 jxgn 使用此代码:

<?xml version="1.0" encoding="UTF-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/previous"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/ic_launcher" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/button_startprint"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/ic_launcher" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/button_cam"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/ic_launcher" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/next"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/ic_launcher" />
        </LinearLayout>
    </TableRow>

</TableLayout>
于 2012-06-01T12:08:47.170 回答
0

尝试在每个按钮上设置:

android:layout_weight="0.25"

希望这对你有用

于 2012-06-01T11:55:19.503 回答
0

试试这个很有用

  <RelativeLayout  
    xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"  
   android:layout_height="wrap_content" 
   android:id="@+id/buttonlayout"     >


<TableLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android">

<TableRow>

  <Button
    android:id="@+id/previous"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:background="@drawable/ic_launcher"  
    android:layout_weight="1"/>

 <Button
    android:id="@+id/button_startprint"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   android:background="@drawable/ic_launcher" 
    android:layout_weight="1"
    />

<Button
    android:id="@+id/button_cam"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/ic_launcher" 
    android:layout_weight="1"     />

 <Button
    android:id="@+id/next"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
  android:background="@drawable/ic_launcher" 
    android:layout_weight="1"       />

  </TableRow>  
  </TableLayout> 
  </RelativeLayout> 
于 2012-06-01T11:58:52.117 回答
0

android:layout_weight="1"在您的 xml 中应用将拉伸您的按钮图像。

如果您不想拉伸按钮图像,请使用ImageButton并设置android:src为您的可绘制对象。

参考以下代码:

<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableRow>

        <ImageButton
            android:id="@+id/previous"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/previous_icon"
            android:background="@android:color/transparent"
            android:layout_weight="1" />

        <ImageButton
            android:id="@+id/button_startprint"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/print_icon"
            android:background="@android:color/transparent"
            android:padding="10dp"
            android:layout_weight="1" />

        <ImageButton
            android:id="@+id/button_cam"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/cam_icon"
            android:background="@android:color/transparent"
            android:padding="10dp"
            android:layout_weight="1" />

        <ImageButton
            android:id="@+id/next"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/next_icon"
            android:background="@android:color/transparent"
            android:hapticFeedbackEnabled="true"
            android:layout_weight="1" />
    </TableRow>
</TableLayout>

`

于 2012-06-01T12:15:35.190 回答