popupwindow在某些機型上不顯示的問題
阿新 • • 發佈:2018-12-30
很多時候你可能會遇到popupwindow不顯示或是一部分手機能顯示一些不能顯示的情況,那恭喜你看到了這篇文章
最開始我建立popupwindow的方式
程式碼如下
同理你也可以
最開始我建立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);
解決啦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);
同理你也可以
參考:https://www.jianshu.com/p/a18215850a62window = 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);