无法对齐微调器和按钮

时间:2016-03-30 12:48:30

标签: android xml android-layout android-studio android-spinner

我使用以下代码来对齐Spinner,然后是一个edittext,然后是一个按钮。以下代码是一个定义为对话框的活动。

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="@android:color/white">


        <Spinner
            android:id="@+id/selector"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:entries="@array/action"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_alignParentStart="true"></Spinner>


    <EditText
        android:id="@+id/remark"
        style="@style/textbox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/decide"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignRight="@+id/decide"
        android:layout_below="@+id/selector"
        android:visibility="invisible" />

    <Button
        android:id="@+id/decide"
        style="@style/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/remark"
        android:text="Submit" />
</RelativeLayout>
  1. 我希望微调器在宽度方面占据整个空间。下面的微调器将是一个edittext
  2. 我希望按钮占据左下角。
  3. 但我的代码并没有让微调器占据整个屏幕。 使用android:gravity="left"可使按钮文字显示在左上角,而不是使按钮本身显示在左侧。

    我该如何解决这个问题? enter image description here

    上面是我的屏幕截图。正如您所看到的,微调器不占用整个屏幕宽度,就像文本框一样。按钮必须很小,它应该出现在左角。但它没有发生

    以下是我添加到按钮

    的btn.xml
    <style name="btn" parent="@android:style/Theme.Holo.Light">
            <item name="android:textColor">@android:color/white</item>
            <item name="android:background">@drawable/button_states</item>
            <item name="android:padding">10.0dip</item>
            <item name="android:layout_width">fill_parent</item>
            <item name="android:layout_height">50.0dip</item>
            <item name="android:layout_margin">10.0dip</item>
        </style>
    

    以下是我的文本框样式

    <style name="textbox" parent="@android:style/Theme.Holo.Light">
            <item name="android:textSize">18.0dip</item>
            <item name="android:textColor">@android:color/black</item>
            <item name="android:background">@drawable/edittext_states</item>
            <item name="android:padding">8.0dip</item>
            <item name="android:layout_width">fill_parent</item>
            <item name="android:layout_height">wrap_content</item>
            <item name="android:layout_margin">10.0dip</item>
        </style>
    

2 个答案:

答案 0 :(得分:2)

试试这个

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="300dp"
android:background="@android:color/white" >

<Spinner
    android:id="@+id/selector"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="5.0dip"
    android:entries="@array/action" >
</Spinner>

<EditText
    android:id="@+id/remark"
    style="@style/textbox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/selector" />

<Button
    android:id="@+id/decide"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/remark"
    android:background="@color/purple"
    android:gravity="left"
    android:text="Done" />

答案 1 :(得分:1)

尝试将此代码从 RelativeLayout更改为LinearLayout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:layout_weight="3"
    android:background="@android:color/white"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/title_lay1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="10dp">

        <Spinner
            android:id="@+id/selector"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5.0dip" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/title_lay2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="10dp">

        <EditText
            android:id="@+id/remark"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="EditTxt" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/title_lay3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="10dp">

        <Button
            android:id="@+id/decide"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="left|bottom"
            android:background="@color/purple"
            android:gravity="center"
            android:text="Done" />
    </LinearLayout>
</LinearLayout>