我试图在 loginscreenactivity onclick 具有注册表单的按钮上弹出一个对话框 fragment 。
我很确定对话框正在打开,但我无法正确地对其进行充气。
当点击 DialogFragment
的按钮时,会出现一些东西,但它完全是空白的,我期待我为注册表单创建的布局。
仔细阅读了代码,似乎没有发现问题。
这是我的DialogFragment
class dialog_fragment:DialogFragment
{
private Button btn;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return base.OnCreateView(inflater, container, savedInstanceState);
var view = inflater.Inflate(Resource.Layout.Register, container, false);
btn = view.FindViewById<Button>(Resource.Id.btnRegister);
btn.Click += delegate
{
Toast.MakeText(this.Activity, "something", ToastLength.Long).Show();
};
return view;
}
}
这包括我显示对话框的位置
btnRegister.Click += delegate
{
FragmentTransaction ft = FragmentManager.BeginTransaction();
dialog_fragment signup = new dialog_fragment();
signup.Show(ft,"dialog signup");
};
解决方案可能非常愚蠢,提前致谢
最佳答案
Vaibhav,如您所料,解决方案很愚蠢,但这种情况确实发生了。
你有一个应该返回一个对话框的对话框 fragment ,但遗憾的是在 dialogfragment 类中有两个返回。
您的解决方案在这里。
难怪它不会在 base.OnCreateView(inflater, container, savedInstanceState);
上返回任何内容
你永远不会遇到行 var view = inflater.Inflate(Resource.Layout.Register, container, false);
去掉base.OnCreateView()
之前的return
class dialog_fragment:DialogFragment
{
private Button btn;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
//return
base.OnCreateView(inflater, container, savedInstanceState);
var view = inflater.Inflate(Resource.Layout.Register, container, false);
btn = view.FindViewById<Button>(Resource.Id.btnRegister);
btn.Click += delegate
{
Toast.MakeText(this.Activity, "something", ToastLength.Long).Show();
};
return view;
}
}
关于android - xamarin 中的空对话 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663483/