Android自定义Dialog的宽度错误

时间:2014-11-20 18:36:57

标签: android dialog

我正在尝试创建自定义Dialog,但它不会以Doalog的正常宽度创建。对于标题,它具有正常宽度,如果我将样式中的windowIsFloating attr设置为true,那么它将变为全宽但阴影消失。请帮我创建具有自定义布局和正常大小的对话框的普通对话框。

<style name="MainTheme.DialogTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:windowNoTitle">true</item>
</style>

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;

        public class MyDialog extends Dialog {

            public MyDialog(Context context) {
                super(context);
            }

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.my_dialog);
            }

        }

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:windowMinWidthMajor="@android:dimen/dialog_min_width_major"
    card_view:cardBackgroundColor="@color/bg_color"
    card_view:cardCornerRadius="5dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="24dp">

            <com.astuetz.RobottoRegularTextView
                android:id="@android:id/text1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingBottom="16dp"
                android:text="text1"
                android:textColor="@color/title_text_color"
                android:textSize="20sp"
                android:textStyle="bold" />

            <com.astuetz.RobottoRegularTextView
                android:id="@android:id/text2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="text2"
                android:textColor="#CC000000"
                android:textSize="14sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="36dp"
            android:gravity="center|right"
            android:orientation="horizontal"
            android:paddingBottom="16dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp">

            <Button
                android:id="@android:id/button1"
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:gravity="center"
                android:minHeight="36dp"
                android:minWidth="88dp"
                android:text="btn1"
                android:textAllCaps="true"
                android:textSize="14sp"
                android:textStyle="bold" />

            <Button
                android:id="@android:id/button2"
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:gravity="center"
                android:minHeight="36dp"
                android:minWidth="88dp"
                android:text="btn2"
                android:textAllCaps="true"
                android:textSize="14sp"
                android:textStyle="bold" />
        </LinearLayout>

    </LinearLayout>
</android.support.v7.widget.CardView>

1 个答案:

答案 0 :(得分:0)

我记得对话框的宽度有问题并重新设置它有帮助。也许它对你也有帮助:

<item name="android:minWidth">0dp</item>
<item name="android:maxWidth">@null</item>