citypicker的改進(jìn)的建議,和出現(xiàn)的BUG。

使用citypicker 庫(kù)出現(xiàn)的問(wèn)題和解決。

一、設(shè)置.backgroundPop(Color.BLACK)沒(méi)有效果,顯示為如下圖片。

圖11111

查看了源碼,原因出在了,pop_citypicker.xml文件之中。
在之中有一個(gè)ll_root的android:layout_height="match_parent"屬性為全屏,使得每次popupWindow的contentView一直為全屏,所以設(shè)置this.popwindow.setBackgroundDrawable(new ColorDrawable(this.backgroundPop));不管用。
因?yàn)檎麄€(gè)popupwindow顯示的是ll_root的。

解決 設(shè)置 ll_root的backgrou屬性為透明:
android:background="@android:color/transparent" 使得我設(shè)置黑色背景顯示了。
PS:(ll_root的高度設(shè)置為wrap_content不管用,因?yàn)閘l_title_background控件里面有個(gè)android:layout_alignParentBottom="true"屬性)
如下圖:

圖22222

但是,我想設(shè)置為.backgroundPop(Color.TRANSPARENT),顯示的情況和上方圖111是一個(gè)情況,這個(gè)就不知道原因是出自哪里了。。。

二、解決 .backgroundPop(Color.TRANSPARENT),顯示的情況和上方圖111是一個(gè)情況

  1. 將 pop_citypicker.xml文件之中的ll_title_background 的 android:layout_alignParentBottom="true"屬性刪掉。

  2. 將CityPicker的中的popupWindow的高度設(shè)置為WRAP_CONTENT:this.popwindow = new PopupWindow(this.popview, -1, -2); 這樣效果如下圖3:

圖3333
  1. 但是上面的背景想變成半透明的,這個(gè)就好辦多了。
  • 在你調(diào)用 mCityPicker.show();的地方,設(shè)置外部View的透明度setAlpha()
//                透明度的值
                mMain_continer.setAlpha(0.3f);
//                設(shè)置 popupWindow的 消失 監(jiān)聽(tīng),在消失的時(shí)候 設(shè)置透明度為1 不透明
                mCityPicker.getPopupWindow().setOnDismissListener(new PopupWindow.OnDismissListener() {
                    @Override
                    public void onDismiss() {
//                        設(shè)置透明度為1 不透明
                        mMain_continer.setAlpha(1f);
                    }
                });
最終效果圖

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

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

這樣做也直接解決了

23 的問(wèn)題》點(diǎn)擊pop以外,讓其消失。@ZhangTengCR7

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容