0

我正在尝试用一些线性布局构建一个网格。不幸的是,“网格”内的按钮填满了所有空间,“网格”的大小并不总是相同。

<ScrollView 
 xmlns:tools="http://schemas.android.com/tools"
 xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_height="wrap_content"
  android:id="@+id/scrollView1"
  android:layout_width="fill_parent"
  android:layout_weight="1"> 
<LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:gravity="center_horizontal"
  android:orientation="vertical" >

  <ImageView
  android:id="@+id/imageView1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/banner" 
  android:background="#80000000"
  android:contentDescription="@string/about"/>

  <LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
   <TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:layout_marginTop="15dp"
   android:gravity="center_horizontal"
   android:text="@string/modi1"
   tools:context=".MenuActivity" />
   <TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:layout_marginTop="15dp"
   android:gravity="center_horizontal"
   android:text="@string/modi2"
   tools:context=".MenuActivity" />
   </LinearLayout>

   <LinearLayout     
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
    <Button
    android:layout_marginTop="10dp"
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    android:text="@string/szen_diagramm" />
    <Button
    android:layout_marginTop="10dp"
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"          
    android:text="@string/szen_countdown" />
   </LinearLayout>
    <Button
    android:layout_marginTop="10dp"
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    android:text="@string/szen_diagramm" />
    <Button
    android:layout_marginTop="10dp"
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"          
    android:text="@string/szen_countdown" />
   </LinearLayout>
    <Button
    android:layout_marginTop="10dp"
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    android:text="@string/szen_diagramm" />
    <Button
    android:layout_marginTop="10dp"
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"          
    android:text="@string/szen_countdown" />
   </LinearLayout>
</LinearLayout>
</ScrollView>

它应该看起来像 这样 ,按钮居中,并且它们需要的大小与里面的文本。

有人可以帮我吗?

4

3 回答 3

5

试试这个。

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

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TableRow>

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#80000000"
            android:contentDescription="ImageView"
            android:layout_span="2"
            android:src="@drawable/banner" />
    </TableRow>

    <TableRow>

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_weight="2"
            android:gravity="center_horizontal"
            android:text="modi1" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_weight="2"
            android:gravity="center_horizontal"
            android:text="modi2" />
    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_weight="2"
            android:gravity="center"
            android:text="szen_diagramm" />

        <Button
            android:id="@+id/button2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_weight="2"
            android:gravity="center"
            android:text="szen_countdown" />
    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_weight="2"
            android:gravity="center"
            android:text="szen_diagramm" />

        <Button
            android:id="@+id/button2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_weight="2"
            android:gravity="center"
            android:text="szen_countdown" />
    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_weight="2"
            android:gravity="center"
            android:text="szen_diagramm" />

        <Button
            android:id="@+id/button2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_weight="2"
            android:gravity="center"
            android:text="szen_countdown" />
    </TableRow>
</TableLayout>

在此处输入图像描述 这就是它向我展示的方式

于 2012-08-09T10:38:36.047 回答
1

删除 android:layout_weight="1" 以避免按钮填满所有空间。

您应该尝试使用 TableLayout 和几个 TableRow 来替换包含按钮的 LinearLayouts,从而创建格式良好的网格

于 2012-08-09T09:56:13.260 回答
0

我有一个类似的问题,解决了在 TableRow 中插入一个 LinearLayout。查看发布的 xml 代码并验证它是否符合您的要求。

<TableRow
    android:layout_gravity="fill_horizontal"
    android:paddingTop="@dimen/table_row_padding_top" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center_horizontal"
            android:orientation="vertical" >

            <ImageButton
                android:contentDescription="@string/str_phone"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:background="@drawable/icon_phone" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center_horizontal"
                android:text="@string/str_phone"
                android:textColor="#000000"
                android:textSize="12sp" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center_horizontal"
            android:orientation="vertical" >

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:background="@drawable/icon_car"
                android:contentDescription="@string/str_car" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center_horizontal"
                android:text="@string/str_car"
                android:textColor="#000000"
                android:textSize="12sp" />
        </LinearLayout>

</TableRow>
于 2013-01-25T11:07:44.577 回答