关于PopupWindow中无法嵌套viewpager+Fragment的解决办法!

来源:互联网 发布:断电后mysql无法启动 编辑:程序博客网 时间:2024/06/06 01:53

许多人在创建弹出窗口的时候都选择 用PopupWindow实现,但是如果弹出传窗口内包含Fragment的时候你会发现找不到对应的ID

错误原因大概是:因为FragmentAdapter传入的是Activity的FragmentManger,所以默认是在Activity的布局xml中寻找ViewPager的定义,但是实际上它是在弹出的View里定义的。


解决办法:

放弃使用PopupWindow使用DialogFragment,但是当我使用DialogFragment的时候我有踩到一坑,就是无法铺满全屏,遂百度之......

最后的解决办法是:

继承DialogFragment后在OnCreatView中写如下代码:

1.//去出标题getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);2.//放置位置Window window = getDialog().getWindow();window.setGravity(Gravity.TOP | Gravity.RIGHT);3.//设置布局
View mFilterView = inflater.inflate(R.layout.panstamp_popupwindow, ((ViewGroup) window.findViewById(android.R.id.content)), false);//需要用android.R.id.content这个viewwindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//注意此处window.setLayout(ScreenUtils.getScreenWidth(getActivity()) - 80, ScreenUtils.getScreenHeight(getActivity()));//2,和上面的一样,注意顺序就行;



之后就解决问题了!

0 0