Android Api demo系列(15) (App>Fragment>FragmentAlertDialog高级使用)
来源:互联网 发布:sql server注释快捷键 编辑:程序博客网 时间:2024/06/05 05:35
App>Fragment>FragmentAlertDialog高级使用
本文讲的是DialogFragment的叠加使用
核心逻辑在下面这个方法中:
void showDialog() { mStackLevel++; //DialogFragment.show()将负责在事务中添加片段。 // 我们也想删除任何当前显示的对话框,所以做我们自己的交易,并在这里照顾。 FragmentTransaction ft = getFragmentManager().beginTransaction(); Fragment prev = getFragmentManager().findFragmentByTag("dialog"); if (prev != null) { ft.remove(prev); } ft.addToBackStack(null);//设置将上一个fragment回退到栈中,方便回退显示上一个fragment。 // Create and show the dialog. DialogFragment newFragment = MyDialogFragment.newInstance(mStackLevel); newFragment.show(ft, "dialog"); }
可以一直调用这个方法而产生很多个DialogFragment叠加在一块。
因为现实只能显示一个fragment,所以先要移除之前的fragment,当回退的时候上一个fragment在栈中,所以直接就显示上一个fragment了。
因为现实只能显示一个fragment,所以先要移除之前的fragment,当回退的时候上一个fragment在栈中,所以直接就显示上一个fragment了。
从代码中可以看出每次都创建一个dialogfragment对象show出来。
而且在Dialogfragment中的oncreateview方法中返回的view显示dialog布局。而不是之前在oncreatDialog方法中返回一个AlertDialog对象。所以只能当此为一个简单的fragent对待。
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_dialog, container, false); View tv = v.findViewById(R.id.text); ((TextView)tv).setText("Dialog #" + mNum + ": using style " + getNameForNum(mNum)); // Watch for button clicks. Button button = (Button)v.findViewById(R.id.show); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { // When button is clicked, call up to owning activity. ((FragmentDialog)getActivity()).showDialog(); } }); return v; }
阅读全文
0 0
- Android Api demo系列(15) (App>Fragment>FragmentAlertDialog高级使用)
- Android Api demo系列(13) (App>Fragment>FragmentAlertDialog)
- Android Api demo系列(14) (App>Fragment>FragmentContextMenu)
- Android Api demo系列(16) (App>Fragment>Fragment Hide Show)
- Android Api demo系列(一) (App>Activity>Animation)
- Android Api demo系列(二) (App>Activity>CustomDialog)
- Android Api demo系列(3) (App>Activity>CustomTitle)
- Android Api demo系列(4) (App>Activity>DialogActivity)
- Android Api demo系列(5) (App>Activity>finishAffinity)
- Android Api demo系列(6) (App>Activity>Presentation)
- Android Api demo系列(7) (App>Activity>QuickContactsDemo)
- Android Api demo系列(9) (App>Activity>SecureDialog)
- Android Api demo系列(10) (App>Activity>SetWallpaperActivity)
- Android Api demo系列(12) (App>Alert Dialogs)
- Android Api demo系列(17) (App>Content>Assets)
- Android Api demo系列(8) (App>Activity>Reorder acitivities>>intent.flag)
- Android Api demo系列(10) (App>Activity>SoftInputModes键盘显示方式)
- Android Api demo系列(11) (App>Alarm警报管理员)
- 使用grep精确匹配一个单词
- excel最大行数各版本介绍
- MFC 单文档、多文档、对话框程序区分
- mysql sql 语句学习
- Mac 上eclipse 配置Tomcat
- Android Api demo系列(15) (App>Fragment>FragmentAlertDialog高级使用)
- 代码书写规范
- TensorFlow深度学习,一篇文章就够了
- 应用含有广告标识符-上架解决
- js的一道经典题目
- 将博客搬至CSDN
- 收获,不止SQL优化——抓住SQL的本质--第五章
- spring整合mybatis完整案例(注解配置方法)
- 每段时间Android开发10个知道(中级系列)-20170831