Android 彈出對話框Dialog充滿屏幕寬度

項目有時候會用到Dialog充滿屏幕有寬度,大多數是從底部顯示出來。如下:

		final View view = LayoutInflater.from(context).inflate(layoutId, null);

		final Dialog dialog = new Dialog(context, R.style.style_dialog);
		dialog.setContentView(view);
		dialog.show();

		Window window = dialog.getWindow();
		window.setGravity(Gravity.BOTTOM);
		window.setWindowAnimations(R.style.dialog_animation);
		window.getDecorView().setPadding(0, 0, 0, 0);

		WindowManager.LayoutParams lp = window.getAttributes();
		lp.width = WindowManager.LayoutParams.MATCH_PARENT;
		lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
		window.setAttributes(lp);

style_dialog:

<style name="style_dialog" parent="android:style/Theme.Dialog">
	<item name="android:windowBackground">@color/white</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:scrollHorizontally">true</item>
	</style>

dialog_animation:

    <style name="dialog_animation">  
        <item name="android:windowEnterAnimation">@anim/enter</item>   
     <item name="android:windowExitAnimation">@anim/exit</item>   
    </style>

enter:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >
    
    <translate 
        android:fromYDelta="100%p"
        android:toYDelta="0"
        android:duration="300"
        />

</set>

exit:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >
    
    <translate 
        android:fromYDelta="0"
        android:toYDelta="100%p"
        android:duration="600"
        />

</set>



發佈了62 篇原創文章 · 獲贊 23 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章