之前做自定義對話框需要寬度鋪滿全屏時,基本是這樣操作的.
AlertDialog dialog = new AlertDialog.Builder(context).create(); dialog.show(); Window window = dialog.getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); lp.width = WindowManager.LayoutParams.MATCH_PARENT; window.setAttributes(lp); window.setWindowAnimations(R.style.dialogWindowAnim);//動畫 window.setContentView(R.layout.layout_mine_bank_del);//布局 window.setGravity(Gravity.CENTER);
以前一直沒出過問題,一直到這次使用了
"AppTheme.NoActionBar"
主題,在5.0以上手機發現寬度無法鋪滿了;如果將位置設置底部
window.setGravity(Gravity.BOTTOM);
會出現底部也有一段距離.
很郁悶,試了其他方式:
window.getDecorView().setPadding(0, 0, 0, 0);
或者
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
或者
Window window = getWindow(); WindowManager.LayoutParams wlp = window.getAttributes(); Display d = window.getWindowManager().getDefaultDisplay();//獲取屏幕寬 wlp.width = (int) (d.getWidth());//寬度按屏幕大小的百分比設置 ;d.getWidth()這個方法已廢棄 wlp.gravity = Gravity.CENTER; window.setAttributes(wlp);
但是都一直無法成功.直到今天無意中在一個博客看到這句才解決問題
window.setBackgroundDrawableResource(android.R.color.transparent);
把這句加上去就沒問題了,哈哈!
感謝博主 http://blog.csdn.net/bear_huangzhen/article/details/51683758
順便記一下,剛才那樣自定義對話框需要先
dialog.show();
才行,不然會出錯的.另一種通過繼承去自定義的則是最后面才show
public class MyDialog extends AlertDialog{ public MyDialog(Context context) { super(context); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.my_dialog); } }
這種使用也比較簡單,靈活度也好
final MyDialog myDialog = new MyDialog(context); myDialog.setMsg("測試顯示自定義對話框"); myDialog.setOnPositiveListener("知道了",new View.OnClickListener() { @Override public void onClick(View v) { myDialog.cancel(); } }); myDialog.show();
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:關于Android對話框寬度無法鋪滿全屏的問題-創新互聯
本文URL:http://m.kartarina.com/article22/cddgcc.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、電子商務、外貿建站、網站設計、Google、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯