AlertDialog - 自定义视图和标题/按钮之间的差距

时间:2013-03-09 00:43:45

标签: android xamarin.android alertdialog xamarin

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

enter image description here

我打开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并得到了同样的问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

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

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

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

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

Dialog with no bottom gap

您也可以保留标题,并使用自定义视图填充整个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>

Dialog with no gaps