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

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

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

citypicker的改进的建议,和出现的BUG。_第1张图片
图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"属性)
如下图:

citypicker的改进的建议,和出现的BUG。_第2张图片
图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:

citypicker的改进的建议,和出现的BUG。_第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);
                    }
                });
citypicker的改进的建议,和出现的BUG。_第4张图片
最终效果图

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

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

这样做也直接解决了

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

你可能感兴趣的:(citypicker的改进的建议,和出现的BUG。)