0

我为 AlertDialog 使用自定义视图。在模拟器中,customeView 的上方和下方都有一些空间。如果我为 AlertDialog 设置标题和按钮,我可以看到标题面板/按钮面板和 customView 之间的差距。我怎样才能消除差距?

在此处输入图像描述

我打开 AlertDialog 的代码:

        btnShowDialog.Click += (object sender, EventArgs e) => 
        { 
            var customView = LayoutInflater.Inflate(Resource.Layout.myDialog, null); 
            var builder = new AlertDialog.Builder(this); 
            builder.SetTitle("Title"); 
            builder.SetView(customView); 

            builder.Create().Show(); 
        }; 

customView 布局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="#FFFFFF">
    <TextView 
        android:id="@+id/DialogText" 
        android:text="This is my custom view. Blur Blur Blur" 
        android:layout_marginLeft="10dp" 
        android:layout_marginRight="10dp" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" />
    <EditText 
        android:id="@+id/EnterPhone" 
        android:inputType="phone" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="10dp" 
        android:layout_marginRight="10dp" 
        android:hint="enter your number" />
</LinearLayout>

我已经在 android 4.0.3 和 4.1.2 模拟器中测试了 AlertDialog 并得到了同样的问题。

感谢帮助!

4

1 回答 1

3

而不是像这样使用AlertDialog尝试使用:Dialog

var dialog = new Dialog(this);
dialog.SetTitle("Hey there");

dialog.SetContentView(Resource.Layout.myDialog);
dialog.Show();

这给了我一个底部没有间隙的对话框。

没有底部间隙的对话框

Dialog您也可以留下标题并用您的自定义视图填充整个标题。

var dialog = new Dialog(this);
dialog.RequestWindowFeature((int)WindowFeatures.NoTitle);

dialog.SetContentView(Resource.Layout.myDialog);
dialog.Show();

并使用此布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#FFFFFF">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#000000">
        <TextView
            android:text="Hey there"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            style="@android:style/TextAppearance.DialogWindowTitle" />
    </LinearLayout>
    <TextView
        android:id="@+id/DialogText"
        android:text="This is my custom view. Blur Blur Blur"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content" />
    <EditText
        android:id="@+id/EnterPhone"
        android:inputType="phone"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:hint="enter your number" />
</LinearLayout>

没有间隙的对话

于 2013-03-09T21:00:29.000 回答