久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

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

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

問題描述

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

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

問題解答

回答1:

正常方法是沒有的, 但是通過Java反射還是能實現的, 只是實現了, 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, 然后調用ViewCompat.setElevation(View, float)就算完成工作了. 但是由于低版本是沒有elevation屬性的, 因此, 上述調用都只是做了兼容處理保證不崩潰而已.

另外一種思路:

高版本通過設置elevation

低版本通過Background Drawable

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

相關文章:
主站蜘蛛池模板: 一区二区三区四区免费观看 | 毛片网站在线观看 | 黄色国产 | 日韩和的一区二在线 | 伊人青青久 | 日本在线观看一区二区 | 国产精品999 | 国产精品久久精品 | 国产小视频网站 | 国产成人精品一区二区三区视频 | 欧洲一区在线 | 色综合网站 | 嫩草影院网站入口 | 四虎视频 | 在线观看中文字幕亚洲 | 精品亚洲成人 | 欧美一级二级片 | 激情综合色综合久久综合 | 日韩国产 | 日韩色区 | 天天舔天天干天天操 | 欧美多人在线 | 亚洲视频一区 | 国产高清在线精品一区二区三区 | 日韩一二三区在线观看 | 久久天堂热 | 六月婷婷久久 | 欧美在线观看一区 | 天天草狠狠干 | 欧洲精品在线观看 | 日韩精品一区二区在线观看 | 国产精品天天干 | 日本久久www成人免 成人久久久久 | 午夜精品影院 | 视频一区二区三区中文字幕 | 免费国产黄 | 一区二区精品在线 | 天堂国产 | 欧美性一区二区 | 成人精品视频99在线观看免费 | 亚洲aⅴ |