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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章