业务的需求是变化莫测的,最近就遇到一个需求是——用户只有点击Dialog的取消按钮才会消失,点击屏幕的时候不消失。Android ICS对UI做了很大的变动,系统提倡使用DialogFragment,但是系统默认的操作习惯是点击屏幕Dialog会自动消失。
为了实现业务的需求,想过使用Dialog风格的Activity,但是做出来的效果和系统的UI效果不匹配,最终只有失败告终。在黔驴技穷的时候,决定再仔细撸一下Android文档,终于在文档中发现了Dialog的setCanceledOnTouchOutside属性,具体使用如下:
方法一:
public class MyAlertDialogFragment extends DialogFragment {
public static MyAlertDialogFragment newInstance(int title) {
MyAlertDialogFragment frag = new MyAlertDialogFragment();
Bundle args = new Bundle();
args.putInt("title", title);
frag.setArguments(args);
return frag;
}
@TargetApi(11)
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
int title = getArguments().getInt("title");
AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.ic_launcher)
.

在Android 4.0(ICS)中,系统默认点击Dialog外的屏幕会使Dialog消失。为满足特殊需求,即点击Dialog以外区域不消失,可以使用Dialog的setCanceledOnTouchOutside属性。本文介绍了如何在DialogFragment中设置这一属性,并提供了两种创建DialogFragment的方法,旨在帮助开发者解决此类问题。
最低0.47元/天 解锁文章
1185

被折叠的 条评论
为什么被折叠?



