[英]Correct way to make a custom material dialog with appCompat 23+
好的,我真的很困惑如何使用最新的appcompat v23.0.1正确地创建自定义对话框这里有几种方法
第一种方式:
public class AddTipDialogFrag extends DialogFragment
{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
int title = getArguments().getInt("title");
AppCompatDialog dialogCompat = new AppCompatDialog(getActivity(), R.style.MyAlertDialogStyle);
dialogCompat.setTitle(title); //doesn't work btw
dialogCompat.setContentView(R.layout.add_tip_fragment);
return dialogCompat;
}
}
第二种方式:
public class AddTipDialogFrag extends AppCompatDialogFragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.add_tip_fragment,container, false);
int title = getArguments().getInt("title");
getDialog().setTitle(title);
return view;
}
}
两种方式似乎产生相同的结果。 我个人更喜欢第一种方式,但是当连线视图边框结束时会出现涟漪效应问题,如下图所示。
这是一个错误吗? (一定是!)我可以修复它还是应该转换到第二种方式? (这对涟漪效果很好)。 考虑到大多数材料对话库使用第一种方式,这两种方法之间的最佳方法是什么?
编辑:第一种方式上的波纹故障似乎不再发生,所以我仍然不确定哪两种是正确的方式。
第二个approch似乎更好,因为AppCompatDialogFragment
扩展了DialogFragment
并为您完成了所有繁重的任务。 此外,它通过抽象不必要的细节(与OOP内联)看起来更清晰。
也给出了所需的效果;)
第二种方法更好,因为它是DialogFragment的特殊版本,它使用AppCompatDialog代替平台样式的对话框。 该AppCompatDialogFragment
是子类的DialogFragment
,将继承的所有属性DialogFragment
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.