Android开发Android技术知识Android开发经验谈

07-06 Activity 实现Dialog样式使用

2018-07-06  本文已影响55人  喜欢萌妹子的少年
自定义样式
<style name="DialogStyle" parent="@style/Theme.AppCompat.Dialog">
        <!--设置dialog的背景-->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!--设置无标题-->
        <item name="android:windowNoTitle">true</item>
        <!--是否浮现在activity之上-->
        <item name="android:windowIsFloating">true</item>
        <!--背景是否模糊显示-->
        <item name="android:backgroundDimEnabled">true</item>
        <!--没有ActionBar -->
        <item name="windowActionBar">false</item>
        <!--设置全屏 -->
        <item name="android:windowFullscreen">true</item>
        <!--去掉头部标题栏 -->
        <item name="windowNoTitle">true</item>
 </style>
清单文件中 Activity添加样式
 <activity
     android:name=".ui.activity.chip.GoldenActivity"
     android:screenOrientation="portrait"
     android:theme="@style/DialogStyle" />
在Activity 类中添加代码
 @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        View view = getWindow().getDecorView();
       
// 添加此句设置 设置背景不变暗
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
            @Override
            public void onSystemUiVisibilityChange(int visibility) {
                int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
                        //布局位于状态栏下方
                        View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
                        //全屏
                        View.SYSTEM_UI_FLAG_FULLSCREEN |
                        //隐藏导航栏
                        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
                if (Build.VERSION.SDK_INT >= 19) {
                    uiOptions |= 0x00001000;
                } else {
                    uiOptions |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
                }
                getWindow().getDecorView().setSystemUiVisibility(uiOptions);
            }
        });

        WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view.getLayoutParams();
        lp.gravity = Gravity.BOTTOM;
        lp.width = UIUtils.getScreenWidth(this);
        lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
        getWindowManager().updateViewLayout(view, lp);
    }
效果如下
activity_dialog样式.jpg
上一篇 下一篇

猜你喜欢

热点阅读