控制DialogFragment显示在界面底部
来源:互联网 发布:webpack node api 编辑:程序博客网 时间:2024/04/28 07:54
在使用DialogFragment时,如果不控制它的位置,它管理的Dialog将显示在当前界面的正中央。
例如,通常我们会这么使用DialogFragment:
private void showPermissionWarningDialog() { //mWarningPermissionFragment继承DialogFragment if (mWarningPermissionFragment == null) { mWarningPermissionFragment = PermissionWarningFragment.newInstance(); mWarningPermissionFragment.setCancelable(false); //FragmentManager将负责显示DialogFragment mWarningPermissionFragment.show(getFragmentManager(), DIALOG_TAG); }}
如果不进行其它操作,mWarningPermissionFragment的dialog将显示在界面的正中央。
现在我们想让DialogFragment对应的dialog显示在整个界面的底部。
一种可行的方法是:
在DialogFragment对应的视图创建出来后显示出来前,更改其位置属性。
我们知道DialogFragment对应的生存周期为:
03-03 13:25:14.246 25266-25266/stark.a.is.zhang.transfer D/ZJTest: onAttach03-03 13:25:14.246 25266-25266/stark.a.is.zhang.transfer D/ZJTest: onCreate03-03 13:25:14.246 25266-25266/stark.a.is.zhang.transfer D/ZJTest: onCreateDialog03-03 13:25:14.246 25266-25266/stark.a.is.zhang.transfer D/ZJTest: onCreateView03-03 13:25:14.256 25266-25266/stark.a.is.zhang.transfer D/ZJTest: onStart...................
因此,比较适合修改位置属性的接口是onStart。
我们可以进行类似如下修改:
@Overridepublic void onStart() { super.onStart(); //得到dialog对应的window Window window = getDialog().getWindow(); if (window != null) { //得到LayoutParams WindowManager.LayoutParams params = window.getAttributes(); //修改gravity params.gravity = Gravity.BOTTOM; params.width = WindowManager.LayoutParams.MATCH_PARENT; window.setAttributes(params); }}
按照这种方式修改后,DialogFragment对应的dialog将显示在界面的底部。
0 0
- 控制DialogFragment显示在界面底部
- DialogFragment显示在底部
- DialogFragment全屏加控件显示在底部
- 在DialogFragment中显示大图片
- DialogFragment从底部弹出
- ActionBar在底部显示
- DiaLog在底部显示
- 文字在底部显示
- 如何在Activity界面控制软键盘显示
- 在div 底部显示背景图片
- 自定义dialog显示在底部
- DialogFragment显示动画
- DialogFragment显示问题。
- Android DialogFragment实现底部弹出菜单效果
- 使用DialogFragment实现底部弹窗布局
- Android屏幕底部弹出DialogFragment(3)
- android中用DialogFragment实现底部弹框
- 底部弹出DialogFragment+与Activity数据交互
- 信号量机制
- 栈和队列
- Android SQLite使用
- CEPH本地yum源安装
- ORACLE执行存储过程权限不足
- 控制DialogFragment显示在界面底部
- 记笔记
- WEB前后端交互(UI界面和数据内容)如何实现
- linux下mysql的卸载、安装全过程
- Android Studio如何删除module
- 2017黑马28期javaEE
- ecshop测试数据清除
- 在Android studio上如何打包APK安装包
- php7安装openssl扩展