我正在使用自定义布局来显示对话框。这是布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textStyle="bold"
android:id="@+id/dialog_title_tv"
android:text="Dialog Title"
/>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
>
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Phone Number"
/>
</android.support.design.widget.TextInputLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select Country: "
android:padding="8dp"
/>
<Spinner
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="8dp"
android:id="@+id/country_spinner"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select City: "
android:padding="8dp"
/>
<Spinner
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="8dp"
android:id="@+id/city_spinner"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select Area: "
android:padding="8dp"
/>
<Spinner
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="8dp"
android:id="@+id/area_spinner"
/>
</LinearLayout>
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="right"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Done"
/>
</LinearLayout>
</LinearLayout>
它显示如下:
但是,我想将其高度设置为WRAP_CONTENT。目前,它占据了整个屏幕。我怎样才能做到这一点?我究竟做错了什么?提前致谢
答案 0 :(得分:2)
试试这个布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/dialog_title_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dialog Title"
android:textSize="20sp"
android:textStyle="bold" />
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Phone Number" />
</android.support.design.widget.TextInputLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="Select Country: " />
<Spinner
android:id="@+id/country_spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="8dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="Select City: " />
<Spinner
android:id="@+id/city_spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="8dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="Select Area: " />
<Spinner
android:id="@+id/area_spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="8dp" />
</LinearLayout>
</LinearLayout>
</ScrollView>
<RelativeLayout
android:id="@+id/AddtoCart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Done" />
</RelativeLayout>
</LinearLayout>
答案 1 :(得分:2)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#1a000000"
android:layout_margin="16dp"
android:padding="16dp">
<TextView
android:id="@+id/dialog_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="My Dialog"
android:fontFamily="sans-serif-condensed"
android:textStyle="bold"/>
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/dialog_header"
android:layout_marginTop="8dp">
<android.support.design.widget.TextInputEditText
android:id="@+id/text_input_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:hint="Enter phone number"/>
</android.support.design.widget.TextInputLayout>
<TextView
android:id="@+id/select_country_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Select Country:"
android:layout_toStartOf="@+id/country_spinner"
android:layout_alignBottom="@+id/country_spinner"
android:textSize="14sp"
android:fontFamily="sans-serif-condensed"
android:textStyle="bold"/>
<Spinner
android:id="@+id/country_spinner"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_below="@+id/text_input_layout"
android:layout_alignParentEnd="true"
android:layout_marginTop="8dp"/>
<TextView
android:id="@+id/select_city_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Select City:"
android:layout_toStartOf="@+id/city_spinner"
android:layout_alignBottom="@+id/city_spinner"
android:textSize="14sp"
android:fontFamily="sans-serif-condensed"
android:textStyle="bold"/>
<Spinner
android:id="@+id/city_spinner"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:prompt="Select One"
android:layout_below="@+id/country_spinner"
android:layout_alignParentEnd="true"
android:layout_marginTop="8dp"/>
<TextView
android:id="@+id/select_area_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Select Area:"
android:layout_toStartOf="@+id/area_spinner"
android:layout_alignBottom="@+id/area_spinner"
android:textSize="14sp"
android:fontFamily="sans-serif-condensed"
android:textStyle="bold"/>
<Spinner
android:id="@+id/area_spinner"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:prompt="Select One"
android:layout_below="@+id/city_spinner"
android:layout_alignParentEnd="true"
android:layout_marginTop="8dp"/>
<TextView
android:id="@+id/done"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="done"
android:textAllCaps="true"
android:layout_below="@+id/area_spinner"
android:layout_alignParentEnd="true"
android:layout_marginTop="24dp"
android:textSize="14sp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:textColor="#00f"/>
<TextView
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="cancel"
android:textAllCaps="true"
android:layout_below="@+id/area_spinner"
android:layout_toStartOf="@+id/done"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:textSize="14sp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:textColor="#00f"/>
</RelativeLayout>
只需将上述XML代码复制粘贴到自定义对话框布局中即可。
虽然您已经将答案标记为正确,但我发布了此信息 由于以下原因
P.S:这是对话框的非滚动视图版本。自从 内容较少。如果您还需要可滚动版本,请评论。它 会有一些略有不同的实施方式 产量略有不同。
答案 2 :(得分:0)
您可能想尝试这些:
android:layout_weight="1"
ScrollView
android:layout_height
设置为某个静态高度(以dp为单位)。LinearLayout
更改为RelativeLayout
。