关于详解Android应用中DialogFragment的基本用法,大家可以参考下。
1、 概述
DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。
在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。
2、 好处与用法
使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和Fragment有着基本一致的声明周期。且DialogFragment也允许开发者把Dialog作为内嵌的组件进行重用,类似Fragment(可以在大屏幕和小屏幕显示出不同的效果)。上面会通过例子展示这些好处~
使用DialogFragment至少需要实现onCreateView或者onCreateDIalog方法。onCreateView即使用定义的xml布局文件展示Dialog。onCreateDialog即利用AlertDialog或者Dialog创建出Dialog。
下面通过示例代码给大家介绍下Android中自定义DialogFragment解决宽度和高度问题
Android中自定义DialogFragment解决宽度和高度问题但是我们很多时候想把DialogFragment的高度固定,那么我们需要设置DialogFragment的高度,在Fragment的onResume()声明周期方法中设置window的宽高即可。
@Override public void onResume() { super.onResume(); getDialog().getWindow().setLayout(DeviceUtil.getDeviceWidth(), ResUtils.dp2px(295)); }
设置DialogFrament 从底部弹出,并且弹出动画为向上滑出,消失动画为向下滑出
WindowManager.LayoutParams params = getDialog().getWindow() .getAttributes(); params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL; params.windowAnimations = R.style.bottomSheet_animation; getDialog().getWindow().setAttributes(params);
完整的代码如下:
@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { WindowManager.LayoutParams params = getDialog().getWindow() .getAttributes(); params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL; params.windowAnimations = R.style.bottomSheet_animation; getDialog().getWindow().setAttributes(params); getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); getDialog().setCanceledOnTouchOutside(true); getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); mContentView = inflater.inflate(R.layout.fragment_create_quick, container, false); return mContentView; } @Override public void onResume() { super.onResume(); getDialog().getWindow().setLayout(DeviceUtil.getDeviceWidth(), HlyUtils.dp2px(380)); } <style name="bottomSheet_animation" parent="@android:style/Animation"> <item name="android:windowEnterAnimation">@anim/slide_in_bottom</item> <item name="android:windowExitAnimation">@anim/slide_out_bottom</item> </style> <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:duration="300" android:fromYDelta="100.0%p" android:toYDelta="0.0" /> </set> <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:duration="300" android:fromYDelta="0%p" android:toYDelta="100%p" /> </set>
总结
以上所述是小编给大家介绍的解决Android中自定义DialogFragment解决宽度和高度问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
本文向大家介绍使用jQuery不判断浏览器高度解决iframe自适应高度问题,包括了使用jQuery不判断浏览器高度解决iframe自适应高度问题的使用技巧和注意事项,需要的朋友参考一下 这里介绍两个超级简单的方法,不用写什么判断浏览器高度、宽度啥的。 下面的两种方法自选其一就行了。一个是放在和iframe同页面的,一个是放在test.html页面的。 注意别放错了地方。 iframe的代码中,注
本文向大家介绍Android中自定义进度条详解,包括了Android中自定义进度条详解的使用技巧和注意事项,需要的朋友参考一下 Android原生控件只有横向进度条一种,而且没法变换样式,比如原生rom的样子 很丑是吧,当伟大的产品设计要求更换前背景,甚至纵向,甚至圆弧状的,咋办,比如: ok,我们开始吧: 一)变换前背景 先来看看progressbar的属性: 根据style="?android
我正在尝试从https://android-arsenal.com/details/1/1375添加一个样式化的进度条 上面写着: 将特定存储库添加到构建文件: 在构建文件中添加依赖项(不要忘记指定正确的限定符,通常是'aar'): 我做了...Build.Gradle(项目) Build.Gradle(模块):应用插件:“com.android.application” android{comp
目前用的是harmonyOS4.0版本,遇到了panel的高度问题,点击panel外的区域也会拖动panel的大小,需求是拖动panel外的区域不会影响panel,而是正常的页面滑动(类似一些著名听书软件的功能),一直没有一个完美的解决方案,期待大佬解惑 尝试过onChange或onHeight事件 高度随mode改变而改变,结果是失败的
主要内容:1. width,2. height,3. max-width 和 max-height,4. min-width 和 min-heightCSS 尺寸属性指的就是元素的宽度和高度属性,虽然说非常简单,但却是必须掌握的技能。CSS 中提供了 width、height、max-width、min-width、max-height 和 min-height 等几个属性来设置元素的宽度和高度,这些元素使用起来非常简单,下面我们就来简单介绍一下。 1. width 通过 width 属性可以设
本文向大家介绍解决Layui数据表格的宽高问题,包括了解决Layui数据表格的宽高问题的使用技巧和注意事项,需要的朋友参考一下 在使用Layui数据表格的时候,如果采用固定数值的话,在不同浏览器里显示会有差异,特别是在不同分辨率设备上。针对以此,把width设置直接去掉,貌似解决了我的显示问题。 之前固定宽高的情况 页面显示如下: 在页面右边显示了好多空白区域,不好看。 把宽度注释之后 界面显示如