linear(Xamarin)gridlayout在linearlayout中

时间:2017-06-09 17:48:34

标签: android xamarin layout

我正在开发一个Android应用程序,主菜单看起来像这样:

Main menu

要做到这一点,我使用线性布局来分隔屏幕40/60 - 使用layout_weight完成高度。

然后,我使用网格布局分割了线性布局的60%部分,并将按钮放入网格中。但是,屏幕显示为完全空白。这是我的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:background="@drawable/background">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="0.6"
        android:gravity="bottom">
        <GridLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:rowCount="2"
            android:columnCount="2">
            <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_row="0"
                android:layout_column="0"
                android:background="@android:color/transparent"
                android:text="Click me"
                android:textAllCaps="false"
                android:textColor="@color/dark_blue" />
            <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_row="0"
                android:layout_column="1"
                android:background="@android:color/transparent"
                android:text="Click me"
                android:textAllCaps="false"
                android:textColor="@color/dark_blue" />
            <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_row="1"
                android:layout_column="0"
                android:background="@android:color/transparent"
                android:text="Click me"
                android:textAllCaps="false"
                android:textColor="@color/dark_blue" />
            <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_row="1"
                android:layout_column="1"
                android:background="@android:color/transparent"
                android:text="Click me"
                android:textAllCaps="false"
                android:textColor="@color/dark_blue" />
        </GridLayout>
    </LinearLayout>
<!--Other code-->
</RelativeLayout>

感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:2)

  

我也想到了这一点,但认为gridlayout是一种更有效的性能,并且也不会重复代码。如果我需要更多按钮,例如8个按钮,那么我需要4个线性布局。那会被接受吗?

我认为您需要的是Grid View android:numColumns="2",然后使用适配器填充每个单元格中的按钮。

以下是有关在Xamarin.Android中使用GridView的教程,您可以查看:Grid View

答案 1 :(得分:1)

为什么你不使用这样的Simple LinearLayout:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:focusable="true"
    android:focusableInTouchMode="true"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.6"
        android:gravity="bottom"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:orientation="vertical">

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="356dp"></LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="76dp">

            <Button
                android:text="Button"
                android:layout_width="175dp"
                android:layout_height="73dp"
                android:id="@+id/button3" />

            <Button
                android:text="Button"
                android:layout_width="match_parent"
                android:layout_height="76dp"
                android:id="@+id/button2" />
        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <Button
                android:text="Button"
                android:layout_width="175dp"
                android:layout_height="73dp"
                android:id="@+id/button1" />

            <Button
                android:text="Button"
                android:layout_width="match_parent"
                android:layout_height="76dp"
                android:id="@+id/button4" />

        </LinearLayout>
    </LinearLayout>
    <!--Other code-->
</RelativeLayout>