Android-PickerView
Android-PickerView copied to clipboard
在自己的dialog里面显示选择器
1、我现在已经显示了一个dialog(自定义布局) 2、这个dialog里面有个按钮,点击这个按钮,原有的dialog不消失,然后显示选择器,这个时候,选择器显示在dialog的后面,完全被挡住了,你可以试一下。
@gitzgq 3.2.5版本已经支持自定义设置控件的父容器了,通过setDecorView方法把Popupwindow 的id 传入即可解决被遮挡的问题。
我看了自定义布局样式,加上.isDialog(true) 这个,就可以了,但是不是从底部弹出的 而是中间弹出的
@gitzgq 这个方法也行
谢谢大神 用这样.setDecorView((ViewGroup) mPwView) 是从底部弹出的
我也是在自定义的dialog中点击按钮弹出PickerView时被DIalog遮挡住了,但我用了setDecorView并没有效果/(ㄒoㄒ)/~~
解决了感谢,遇到了同样的问题,我的是DialogFragment,使用.setDecorView((ViewGroup)getDialog().getWindow().getDecorView())即可解决,从底部弹出,并且在dialogfragment之上;同样试了一下自定义的dialog,要使用.setDecorView((ViewGroup)dialog.getWindow().getDecorView()),效果同上。
Ps.自己百度了一下,decorView是window中的最顶层view,可以从window中通过getDecorView获取到decorView。拿到最上层的view,传给选择器,即可实现在最上层显示选择器,不知道理解对不对
Ps.Ps.但是选择器弹出的动画效果会无效,会直接出现选择器,选择器收回的动画效果还在(测试机型小米5s,系统MIUI9 8.1.11开发版,Android 7.0) @xiaosong520
@hwp88110 估计是动画的style 属性没有做好适配, 建议先在自己项目覆盖一下进出动画的属性pickerview_dialog_scale_in 和 pickerview_dialog_scale_out 这两个文件(默认的是弹出到中间,可以修改成弹出到底部),然后设置为dialog 模式。这样应该可以实现需求。
@hwp88110 说错了,是 pickerview_slide_in_bottom 和 pickerview_slide_out_bottom。 上面scale 的那个是 dialog 模式的动画。dialog 模式适配需要修改 BasePickerView 里面createDialog 方法 的代码,并将Dialog 设置为 Gravity.BOTTOM
我的为什么还是不行啊
.setDecorView((ViewGroup)dialog.getWindow().getDecorView()) 我的使用这样还是不行的 但是.isDialog(true) 是没有问题的
@xiaosong520 您好,我这个也是自己写个弹窗,这个弹窗是居中显示的,然后弹窗中点一个按钮想再屏幕下方弹出pickerview,但是我按照上面的方法 最终只是从自定义弹窗的底部弹出的,如何做到从屏幕底部弹出呢。
大概看了下,可以通过更改内部dialog的参数来实现,以下为kotlin代码。 val pvTime = TimePickerBuilder(context) { date, _ -> // 回调代码 } .isDialog(true) .build() // 设置底部显示 pvTime.dialog?.window?.setGravity(Gravity.BOTTOM) // 设置弹出动画 pvTime.dialog?.window?.setWindowAnimations(R.style.picker_view_slide_anim) // 去除两边的margin pvTime?.dialog?.findViewById<ViewGroup>(R.id.content_container)?.updateLayoutParams<FrameLayout.LayoutParams> { leftMargin = 0 rightMargin = 0 } pvTime.show()
我是这样解决的。
我是这样解决的。 有用,多谢您了
我是这样解决的。 成功解决啦 谢谢大佬 大佬知道这是为什么嘛
This is how I solved it.
This does not solve the issue for me; I still see the picker behind the DialogFragment