在Xamarin中使用Activity作为对话框

时间:2016-06-23 15:42:08

标签: android xamarin xamarin.android mvvmcross

我正在尝试将活动用作对话框,我已经完成了以下操作,但它仍然显示为活动而不是对话框。我想知道我错过了什么或做错了什么?

的AndroidManifest.xml

<activity
   android:name="AboutView"
   android:theme="@style/Dialog">
</activity>

的themes.xml

<style name="Dialog" parent="@android:style/Theme.Dialog">
   <item name="windowActionBar">false</item>
   <item name="android:windowNoTitle">true</item>
</style>

AboutView.cs

[MvxFragment(typeof(MainViewModel), Resource.Id.MainViewContainer)]
[Activity(Label = "AboutView", Theme = "@style/Dialog")]
[Register("views.AboutView")]
public class AboutView : MvxFragment<AboutViewModel>
{
    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        var ignored = base.OnCreateView(inflater, container, savedInstanceState);
        var view = this.BindingInflate(Resource.Layout.AboutView, null);
        return view;
    } 
}

2 个答案:

答案 0 :(得分:0)

您只是指定Activity的主题应该从Dialog的主题继承。 AboutView类仍继承自MVXFragment,而不是Dialog。

我不太熟悉Xamarin的类结构,但你需要确保AboutView类继承自Xamarin的Dialog版本。

在Android工作室中,它将是DialogFragment类。你可以开始寻找那里。

答案 1 :(得分:0)

我认为MvxDialogFragment正是您正在寻找的。这里有一个example如何使用它