之前做自定義對(duì)話框需要寬度鋪滿全屏?xí)r,基本是這樣操作的.
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括鳩江網(wǎng)站建設(shè)、鳩江網(wǎng)站制作、鳩江網(wǎng)頁(yè)制作以及鳩江網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,鳩江網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到鳩江省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
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);//動(dòng)畫(huà) window.setContentView(R.layout.layout_mine_bank_del);//布局 window.setGravity(Gravity.CENTER);
以前一直沒(méi)出過(guò)問(wèn)題,一直到這次使用了
"AppTheme.NoActionBar"
主題,在5.0以上手機(jī)發(fā)現(xiàn)寬度無(wú)法鋪滿了;如果將位置設(shè)置底部
window.setGravity(Gravity.BOTTOM);
會(huì)出現(xiàn)底部也有一段距離.
很郁悶,試了其他方式:
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());//寬度按屏幕大小的百分比設(shè)置 ;d.getWidth()這個(gè)方法已廢棄 wlp.gravity = Gravity.CENTER; window.setAttributes(wlp);
但是都一直無(wú)法成功.直到今天無(wú)意中在一個(gè)博客看到這句才解決問(wèn)題
window.setBackgroundDrawableResource(android.R.color.transparent);
把這句加上去就沒(méi)問(wèn)題了,哈哈!
感謝博主 http://blog.csdn.net/bear_huangzhen/article/details/51683758
順便記一下,剛才那樣自定義對(duì)話框需要先
dialog.show();
才行,不然會(huì)出錯(cuò)的.另一種通過(guò)繼承去自定義的則是最后面才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); } }
這種使用也比較簡(jiǎn)單,靈活度也好
final MyDialog myDialog = new MyDialog(context); myDialog.setMsg("測(cè)試顯示自定義對(duì)話框"); myDialog.setOnPositiveListener("知道了",new View.OnClickListener() { @Override public void onClick(View v) { myDialog.cancel(); } }); myDialog.show();