亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

android - popupWindow.setElevation()怎樣兼容到API21以下呢

瀏覽:116日期:2024-08-20 08:04:25

問題描述

項(xiàng)目里有個(gè)地方用到了PopupWindow的setElevation() 但是這個(gè)方法只支持API21以上,我看有個(gè)PopupWindowCompat,但是里面好像沒有什么有用的方法,請問應(yīng)該如何兼容API21以下的版本呢

android - popupWindow.setElevation()怎樣兼容到API21以下呢

問題解答

回答1:

正常方法是沒有的, 但是通過Java反射還是能實(shí)現(xiàn)的, 只是實(shí)現(xiàn)了, elevation的效果也是出不來的. 先看看Android源碼:

public class PopupWindow { ... ... private View mBackgroundView; public void setElevation(float elevation) {mElevation = elevation; } private void preparePopup(WindowManager.LayoutParams p) {... ...// The background owner should be elevated so that it casts a shadow.mBackgroundView.setElevation(mElevation); }}

從上面的代碼, 可以知道只要通過反射獲取到mBackgroundView, 然后調(diào)用ViewCompat.setElevation(View, float)就算完成工作了. 但是由于低版本是沒有elevation屬性的, 因此, 上述調(diào)用都只是做了兼容處理保證不崩潰而已.

另外一種思路:

高版本通過設(shè)置elevation

低版本通過Background Drawable

p.s.為什么不干脆都用Background Drawable

相關(guān)文章:
主站蜘蛛池模板: 精品国产一区二区三区不卡在线 | 青青热久免费精品视频在线观看 | 1024在线视频精品免费 | 爱爱小说视频永久免费网站 | 正在播放亚洲一区 | 国产99视频在线 | 欧美日韩在线观看精品 | 精品日韩欧美国产一区二区 | 黄色在线免费看 | 亚洲欧美日本韩国 | 在线观看视频日韩 | 8x永久免费观看成人影院 | 国产一区在线mmai | 亚洲日韩欧美视频 | 精品亚洲欧美高清不卡高清 | 亚洲国产精品久久久久秋霞小 | 亚洲国产一成人久久精品 | 欧美亚洲国产精品久久第一页 | 九九精品视频在线观看 | 激情久久免费视频 | 日韩中文字幕精品一区在线 | 日本在线观看免费看片 | 欧美爱片 | 美女三级黄 | 久久精品中文字幕不卡一二区 | 国产爽片在线观看 | 91色在线观看国产 | 国产情侣真实露脸在线 | 色综合久久综合 | 久久久久国产成人精品亚洲午夜 | 欧美日韩在线成人看片a | 国产精品久久久久久久成人午夜 | 色老头xxxwww作爱视频 | 久久人成| 久久久久欧美精品观看 | 4k岛国精品午夜高清在线观看 | 亚洲a级黄色片 | 九九99视频在线观看视频观看 | 在线 看片 | 亚洲欧美日韩成人网 | 日本一级毛片不卡免费 |