首页 > 解决方案 > Xamarin.Android - GridLayout:列不可见

问题描述

我正在开发一个 Xamarin.Android 应用程序,我希望使用 GridLayout 来显示一个简单的表单。但是,GridLayout 不会显示在第二列中找到的所有输入框。如果我将项目( EditText 控件)放在第 0 列中,它们就会变得可见。但是如果我设置layout_Column="1,它们就会消失。有人有建议吗?下面是我的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="#d4d8d1"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <GridLayout
        android:rowCount="7"
        android:columnCount="3"
        android:columnOrderPreserved="false"
        android:layout_marginLeft="25dp"
        android:layout_marginRight="15dp"
        android:layout_marginTop="30dp"
        android:layout_marginBottom="8dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:orientation="horizontal"
        >
        <TextView
            android:text="Name:"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_row="0"
            android:layout_column="0"
            android:textSize="20dp"
            android:layout_marginTop="5dp"
            android:layout_marginRight="5dp"
            />
        <EditText
            android:id="@+id/nameTxt"
            android:inputType="text"
            android:text="Item Name"
            android:layout_row="0"
            android:layout_column="1"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="8dp"
            android:textSize="20dp"
            android:minWidth="200dp"
            android:padding="2dp"
            android:layout_width="wrap_content"
            android:background="#eee"
            android:textColor="#001"
        />
        <TextView
            android:text="Unit Price:"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_row="1"
            android:layout_column="0"
            android:layout_marginTop="5dp"
            android:textSize="20dp"
            android:layout_marginRight="5dp"
            />
        <EditText
            android:id="@+id/priceTxt"
            android:text="Unit Price"
            android:layout_row="1"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="8dp"
            android:layout_column="1"
            android:textColor="#0000"
            android:textSize="20dp"
            android:layout_width="fill_parent"
        />
        <TextView
            android:text="Category:"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_row="2"
            android:layout_column="0"
            android:layout_marginTop="5dp"
            android:textSize="20dp"
            android:layout_marginRight="5dp"
            />
        <Spinner
            android:layout_row="2"
            android:layout_column="1"
            android:padding="1dp"
            android:entries="@array/item_category"
            android:backgroundTint="#D11F08"
            android:layout_marginLeft="8dp"
            android:layout_marginTop="5dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/categorySpinner" />
        <TextView
            android:text="Quantity:"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_row="3"
            android:layout_column="0"
            android:textSize="20dp"
            android:layout_marginTop="5dp"
            android:layout_marginRight="5dp"
            />
        <EditText
            android:id="@+id/qtyTxt"
            android:text="Quantity"
            android:layout_row="3"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="8dp"
            android:layout_column="1"
            android:textColor="#0000"
            android:textSize="20dp"
            android:layout_width="fill_parent"
        />
        <TextView
            android:text="Total Price:"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_row="4"
            android:layout_column="0"
            android:textSize="20dp"
            android:layout_marginTop="5dp"
            android:layout_marginRight="5dp"
            />
        <EditText
            android:id="@+id/totalPriceTxt"
            android:text="Total Price"
            android:layout_row="4"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="8dp"
            android:layout_column="1"
            android:textColor="#0000"
            android:textSize="20dp"
            android:layout_width="fill_parent"
        />
        <Button
            android:id="@+id/saveBtn"
            android:text="Save"
            android:layout_row="5"
            android:layout_column="0"
            android:background="@drawable/buttonstyle"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="100dp"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            android:layout_width="match_parent"
            />
    </GridLayout>

</LinearLayout>

标签: c#xamarin.androidmultiple-columnsgrid-layout

解决方案


该错误是在按钮上引起的,您需要设置列跨度。

在按钮下方添加代码。

 <Button
        android:layout_columnSpan="2"
        android:id="@+id/saveBtn"
        android:text="Save"
        android:layout_row="5"
        android:layout_column="0"

        android:background="@drawable/pink"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="100dp"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_width="match_parent"
        />

在此处输入图像描述


推荐阅读