使用popupwindow的坑(不顯示)
阿新 • • 發佈:2019-01-03
很多時候你可能會遇到popupwindow不顯示或是一部分手機能顯示一些不能顯示的情況,那恭喜你看到了這篇文章。
最開始我建立popupwindow的方式
程式碼如下
//肉眼看上去沒什麼問題,果然拿出我的小米note跑起來也是正常的,但是偏偏來個三星和魅族的一些手機就顯示不了 View view = LayoutInflater.from(this).inflate(R.layout.choice_rider_num, null); window = new PopupWindow(this); window.setContentView(view); window.setOutsideTouchable(false); window.setFocusable(true); // 例項化一個ColorDrawable顏色為半透明 window.setBackgroundDrawable(null); window.setAnimationStyle(R.style.mypopwindow_anim_style); window.showAtLocation(v, Gravity.BOTTOM, 0, 0);
仔細研究後發現是沒有給popupwindow設定寬高導致的,於是
window = new PopupWindow(this); window.setContentView(view); //設定寬高 window.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT); window.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); window.setOutsideTouchable(false); window.setFocusable(true); window.setAnimationStyle(R.style.mypopwindow_anim_style); window.showAtLocation(v, Gravity.BOTTOM, 0, 0);
解決啦
同理你也可以
作者:laer_L連結:https://www.jianshu.com/p/a18215850a62 來源:簡書 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。window = new PopupWindow(v, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); window.setContentView(view) window.setOutsideTouchable(false); window.setFocusable(true); // 例項化一個ColorDrawable顏色為半透明 window.setBackgroundDrawable(null); window.setAnimationStyle(R.style.mypopwindow_anim_style); window.showAtLocation(v, Gravity.BOTTOM, 0, 0);