美文网首页
citypicker的改进的建议,和出现的BUG。

citypicker的改进的建议,和出现的BUG。

作者: sun_wenming | 来源:发表于2017-04-14 18:16 被阅读0次

    使用citypicker 库出现的问题和解决。

    一、设置.backgroundPop(Color.BLACK)没有效果,显示为如下图片。

    图11111
    查看了源码,原因出在了,pop_citypicker.xml文件之中。
    在之中有一个ll_root的android:layout_height="match_parent"属性为全屏,使得每次popupWindow的contentView一直为全屏,所以设置this.popwindow.setBackgroundDrawable(new ColorDrawable(this.backgroundPop));不管用。
    因为整个popupwindow显示的是ll_root的。

    解决 设置 ll_root的backgrou属性为透明:
    android:background="@android:color/transparent" 使得我设置黑色背景显示了。
    PS:(ll_root的高度设置为wrap_content不管用,因为ll_title_background控件里面有个android:layout_alignParentBottom="true"属性)
    如下图:

    图22222

    但是,我想设置为.backgroundPop(Color.TRANSPARENT),显示的情况和上方图111是一个情况,这个就不知道原因是出自哪里了。。。

    二、解决 .backgroundPop(Color.TRANSPARENT),显示的情况和上方图111是一个情况

    1. 将 pop_citypicker.xml文件之中的ll_title_background 的 android:layout_alignParentBottom="true"属性删掉。

    2. 将CityPicker的中的popupWindow的高度设置为WRAP_CONTENT:this.popwindow = new PopupWindow(this.popview, -1, -2); 这样效果如下图3:

    图3333
    1. 但是上面的背景想变成半透明的,这个就好办多了。
    • 在你调用 mCityPicker.show();的地方,设置外部View的透明度setAlpha()
    //                透明度的值
                    mMain_continer.setAlpha(0.3f);
    //                设置 popupWindow的 消失 监听,在消失的时候 设置透明度为1 不透明
                    mCityPicker.getPopupWindow().setOnDismissListener(new PopupWindow.OnDismissListener() {
                        @Override
                        public void onDismiss() {
    //                        设置透明度为1 不透明
                            mMain_continer.setAlpha(1f);
                        }
                    });
    
    最终效果图

    PS: 我在源码中加了获取里面的popupwindow的方法,如下:

     public PopupWindow getPopupWindow() {
            return this.popwindow;
        }
    

    这样做也直接解决了

    23 的问题》点击pop以外,让其消失。@ZhangTengCR7

    相关文章

      网友评论

          本文标题:citypicker的改进的建议,和出现的BUG。

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