微调器在 android activity 中占据整个 space

Spinner taking whole space below it in android activity

我正在尝试制作一个 xml activity 如下图所示的图形布局。

如左图所示


我制作的微调器占用了整个 space 直到 activity 的底部,因此制作的按钮消失了。

XML 文件:-

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:paddingBottom="2dp"
    android:paddingLeft="12dp"
    android:paddingRight="12dp"
    android:paddingTop="2dp"
    android:background="#FFFFFF"
    android:layout_height="match_parent" >

    <TextView
    android:id="@+id/select_project_chart"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="18dp"
    android:ems="10"
    android:text="Select Project To Rename"
    android:inputType="text"
    android:textAppearance="?android:attr/textAppearance"
    android:textColor="@android:color/black" />

    <Spinner
    android:id="@+id/spinner_for_rename"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/select_project_chart"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="103dp"
    android:animateLayoutChanges="true"
    android:prompt="@string/select_a_project"
    android:spinnerMode="dropdown" />

    <EditText
    android:id="@+id/new_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/select_project_chart"
    android:layout_below="@+id/select_project_chart"
    android:layout_marginTop="32dp"
    android:ems="10"
    android:hint="New Name"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:theme="@style/EditTextsumeet" />

    <Button
    android:id="@+id/rename_pro"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/spinner_for_rename"
    android:layout_below="@+id/spinner_for_rename"
    android:layout_marginTop="98dp"
    android:background="@drawable/mybutton"
    android:gravity="center"
    android:paddingBottom="2dp"
    android:paddingLeft="12dp"
    android:paddingRight="12dp"
    android:paddingTop="2dp"
    android:text="Rename"
    android:textAppearance="?android:attr/textAppearanceMedium" />

    </RelativeLayout>

如果我尝试移动按钮或微调器,它会给出 class 投射异常错误,提示无法将按钮投射到微调器。

如何解决这个问题?

根据您的布局,您在订单下方有一个控件。使用时应使用 LinearLayout 而不是 RelativeLayout,这也将解决您的问题。

正如您的代码所说,您已给出 android:layout_height="wrap_content" wrap_content 将根据下拉列表项布局大小占用 space...

因此,对于您的下拉列表项,请给出 "dp" 的特定高度,例如 android:layout_height="65dp"android:margin="3dp"。它将解决您的问题....

此解决方案仅适用于一种屏幕尺寸。如果您想根据显示调整高度和边距,则必须为您的应用实现多屏支持。

将其用于微调器下拉项布局:

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView android:id="@+id/lbl_person_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:margin="5dp"
            android:layout_gravity="center_vertical"
            android:text="TextView" />
     </LinearLayout>

对于class强制转换异常,只需清理运行之前的项目。