【问题标题】:Dialog is taking the whole screen width对话框占用整个屏幕宽度
【发布时间】:2014-09-01 19:32:57
【问题描述】:

我制作了一个自定义对话框

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:id="@+id/dialog_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/dialog_text_padding"
    android:paddingRight="@dimen/dialog_text_padding"
    android:paddingTop="@dimen/dialog_text_padding">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/dialog_heading"
        tools:text="Permissions"
        android:textStyle="bold"
        android:textColor="@color/brand_color"
        android:textSize="22sp"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/dialog_text"
        android:clickable="true"
        android:layout_marginTop="@dimen/padding_large"
        android:textSize="18sp"
        tools:text="This app determines your phone location and shares it with Google to server personalized alters for you. This allows for a better app pferformance"/>





    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="24dp"
        android:id="@+id/okCancelView"
        android:paddingTop="@dimen/dialog_text_padding"
        android:paddingLeft="@dimen/dialog_text_padding"

       >

        <TextView
            android:layout_width="wrap_content"
            android:layout_toLeftOf="@+id/dialog_cancel"
            android:layout_marginRight="@dimen/dialog_text_padding"
            android:gravity="center"
            android:layout_height="wrap_content"
             android:paddingTop="10dp"
            android:paddingBottom="10dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            tools:text="OK"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            tools:text="CANCEL"
            android:padding="10dp"
            android:layout_alignParentRight="true"
            android:textColor="@color/dialog_heading"
            android:gravity="center"/>

        </RelativeLayout>

</LinearLayout>

我用简单的方式展示它

Dialog d=new Dialog(this);
d.setContentView(R.layout.custom_dialog);
d.show();

但我的对话框占据了整个屏幕的宽度(附图片)。为什么屏幕和对话框之间没有空间?

【问题讨论】:

    标签: android android-dialog


    【解决方案1】:
    Display display = ((Activity) ctx).getWindowManager()
                        .getDefaultDisplay();
                Point size = new Point();
                display.getSize(size);
                int width = size.x;
                alert_dialog.getWindow().setLayout((int) (width * .89),
                        LayoutParams.WRAP_CONTENT);
    

    【讨论】:

    • 它会在两边留下 10% 的宽度空间
    • 但默认情况下空间在那里。为什么它没有出现在我的情况下?
    • 平板电脑中的对话框如何显示?它们是全屏显示还是仅出现在屏幕的中间部分?
    • 这是默认对话框。您正在使用宽度设置为 match_parent 的自定义对话框。
    • @Kunu 即使我将其设置为 wrap-content,它也会占用整个宽度
    猜你喜欢
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 2012-04-23
    • 2020-11-29
    • 1970-01-01
    • 2017-01-24
    相关资源
    最近更新 更多