美文网首页
收拾PopupWindows

收拾PopupWindows

作者: 菠萝Pie | 来源:发表于2017-04-26 14:30 被阅读0次

    PopupWindows多坑,不赘述了,无意中发现一个专讲这个的博客http://www.cnblogs.com/popfisher/p/5944054.html

    先讲讲我遇到的需求------条件选择,并实现选择按钮顶部悬浮效果、列表可滑动,实现1、2、3级列表。

    思来想去摒弃了选择按钮和listview封装在一起的那种,列表改用popupwindows实现。(不要问我为啥,因为技术有限,只想到了pop实现:炫富并且滑动不被外层srcrollview抵消)

    悬浮我用的CoordinatorLayout +NestedScrollView +AppBarLayout

    多级条件选择: ExpandMenuView条件筛选

    SingleListFilterView 1级列表

    ThereListFilterView 2级列表

    DoubleListFilterView 3级列表

    Popupwindow –封装在ExpandMenuView,用来显示列表

    下面讲讲我遇到的问题:

    1.appBarLayout.setExpanded(false);实现点击筛选按钮的时候,将ExpandMenuView悬浮起来,这个时候Popupwindow却因为提前获取了焦点,怎么也无法显示在ExpandMenuView下方。

    解决办法:因为Popupwindow注定要显示在ExpandMenuView下方,并且ExpandMenuView注定要在顶部显示,这是我的需求。我弄了一个textview始终显示在ExpandMenuView要悬浮的位置。改Popupwindow不再追随ExpandMenuView的脚步显示,而是追随textview的脚步显示,最终实现了想要的效果。

    2.我想要Popupwindow下面变成遮罩效果,而不要盖住上面的ExpandMenuView。

    解决办法:Popupwindow的最底层布局设置一个透明度,而不是设置windows的透明度。如果你还没实现想要的效果,说明那还不是pop的最底层布局。这个时候,如果你想控制列表的显示高度,只在这块滚动,那么在xml中设置listview的高度就成。

    3.Popupwindow的showAsDropDown的方法。让pop有时显示在上面,有时显示在下面,体验不好。

    解决办法:ppwfilter.showAsDropDown(parent, xoff, yoff, gravity)//parent:传你当前Layout的id; gravity:Gravity.BOTTOM(以屏幕左下角为参照)... 偏移量会以它为基准点 当x y为0,0是出现在底部居中

    api19及其以上才有这个办法。把minSdkVersion改了。

    其中不足,欢迎大家指正。

    代码地址:https://github.com/BoloPie/MyApplication

    相关文章

      网友评论

          本文标题:收拾PopupWindows

          本文链接:https://www.haomeiwen.com/subject/bpvizttx.html