使用citypicker 庫(kù)出現(xiàn)的問(wèn)題和解決狈惫。
一、設(shè)置.backgroundPop(Color.BLACK)沒(méi)有效果鹦马,顯示為如下圖片胧谈。
查看了源碼,原因出在了荸频,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"屬性)
如下圖:
但是键袱,我想設(shè)置為.backgroundPop(Color.TRANSPARENT)燎窘,顯示的情況和上方圖111是一個(gè)情況,這個(gè)就不知道原因是出自哪里了蹄咖。褐健。。
二澜汤、解決 .backgroundPop(Color.TRANSPARENT)蚜迅,顯示的情況和上方圖111是一個(gè)情況
將 pop_citypicker.xml文件之中的ll_title_background 的
android:layout_alignParentBottom="true"
屬性刪掉。將CityPicker的中的popupWindow的高度設(shè)置為WRAP_CONTENT:
this.popwindow = new PopupWindow(this.popview, -1, -2);
這樣效果如下圖3:
- 但是上面的背景想變成半透明的俊抵,這個(gè)就好辦多了谁不。
- 在你調(diào)用 mCityPicker.show();的地方,設(shè)置外部View的透明度setAlpha()
// 透明度的值
mMain_continer.setAlpha(0.3f);
// 設(shè)置 popupWindow的 消失 監(jiān)聽徽诲,在消失的時(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;
}