使用MVVM模型在Xamarin Android中弹出一个视图

使用MVVM模型在Xamarin Android中弹出一个视图,android,mvvm,xamarin,views,popupwindow,Android,Mvvm,Xamarin,Views,Popupwindow,我知道有弹出视图的例子,我可以而且确实制作了一个弹出窗口/警报对话框。但是我们使用MVVM模型和ShowViewModel方法来显示视图。一定是这样的 现在是实际情况。我有两个屏幕。从屏幕1(listview)中选择一个列表项。我来到屏幕2。屏幕2上有一个按钮(提交按钮,而不是导航按钮)。单击将显示一个弹出视图。单击“确定”将返回屏幕1(列表视图)。简单。我创建了一个简单的pop-up.axml,如下所示: <?xml version="1.0" encoding="utf-8"?>

我知道有弹出视图的例子,我可以而且确实制作了一个弹出窗口/警报对话框。但是我们使用MVVM模型和ShowViewModel方法来显示视图。一定是这样的

现在是实际情况。我有两个屏幕。从屏幕1(listview)中选择一个列表项。我来到屏幕2。屏幕2上有一个按钮(提交按钮,而不是导航按钮)。单击将显示一个弹出视图。单击“确定”将返回屏幕1(列表视图)。简单。我创建了一个简单的pop-up.axml,如下所示:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:padding="50dp">
  <TextView
    android:id="@+id/DialogTitle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingTop="9dp"
    android:textAppearance="@style/AlertTextAppearance"
    local:MvxBind="Text Title"/>
  <TextView
     android:id="@+id/DialogMessage"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:textAppearance="?android:attr/textAppearanceLarge"
     local:MvxBind="Text Message" />
  <Button
    android:id="@+id/OkBtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="OK"
    local:MvxBind="Click OKCommand"
    />


</LinearLayout>

当我点击提交时,我会看到一个完整的活动窗口。我不想那样。我想要一个与弹出窗口完全一样的小窗口,但要有视野。任何帮助都将不胜感激。谢谢
刚刚开始使用MVVM和Xamarin为Android编写代码。在过去,我确实在Android开发中使用了eclipse。所以这里不同。

您可以从DialogFragment扩展,然后像这样膨胀布局

公共类YourDialog:DialogFragment {

    public override Dialog OnCreateDialog(Bundle savedInstanceState)
    {
        var builder = new AlertDialog.Builder(Activity);
        // Get the layout inflater
        var inflater = Activity.LayoutInflater;

        _view = inflater.Inflate(Resource.Layout.your_layout, null);

        // Inflate and set the layout for the dialog
        // Pass null as the parent view because its going in the dialog layout
        builder.SetView(_view);



        return builder.Create();
    }