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);
}