横屏Activity下Dialog设置全屏无效的问题
2017-10-30 17:45
447 查看
最近项目中需要将Presentation改成Dialog实现,发现在xml里面写matchparent,并且在dialog的theme里面设置
<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>
都不会使dialog全屏的问题。后来查阅文献,找到两种解决办法。不过显示效果会不一样。
首先,设置Dialog的theme属性如下(部分属性是我项目使用的,与此无关)
<style name="single_fullscreen_dialog_theme" parent="android:style/Theme.Dialog">
<!--是否全屏-->
<item name="android:windowFullscreen">true</item>
<!--背景颜色及透明程度-->
<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">false</item>
<!-- 对话框是否有遮盖 -->
<item name="android:windowContentOverlay">@null</item>
<!-- 背景缓存颜色 -->
<item name="android:colorBackgroundCacheHint">@null</item>
<!-- 弹出或者进入时的动画效果 -->
<!--<item name="android:windowAnimationStyle">@style/dialog_animation</item>-->
</style>
方法一:在setContentView之后调用
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
这种的显示效果会遮挡系统状态栏。
方法二:重写show方法
@Override
public void show() {
super.show();
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mContentview.getLayoutParams();
DisplayMetrics dm = new DisplayMetrics();
WindowManager manager = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
manager.getDefaultDisplay().getMetrics(dm);
layoutParams.width = dm.widthPixels;
layoutParams.height = dm.heightPixels;
mContentview.setLayoutParams(layoutParams);
}
mContentView是根布局。
这种的显示效果不会遮挡系统状态栏。
<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>
都不会使dialog全屏的问题。后来查阅文献,找到两种解决办法。不过显示效果会不一样。
首先,设置Dialog的theme属性如下(部分属性是我项目使用的,与此无关)
<style name="single_fullscreen_dialog_theme" parent="android:style/Theme.Dialog">
<!--是否全屏-->
<item name="android:windowFullscreen">true</item>
<!--背景颜色及透明程度-->
<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">false</item>
<!-- 对话框是否有遮盖 -->
<item name="android:windowContentOverlay">@null</item>
<!-- 背景缓存颜色 -->
<item name="android:colorBackgroundCacheHint">@null</item>
<!-- 弹出或者进入时的动画效果 -->
<!--<item name="android:windowAnimationStyle">@style/dialog_animation</item>-->
</style>
方法一:在setContentView之后调用
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
这种的显示效果会遮挡系统状态栏。
方法二:重写show方法
@Override
public void show() {
super.show();
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mContentview.getLayoutParams();
DisplayMetrics dm = new DisplayMetrics();
WindowManager manager = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
manager.getDefaultDisplay().getMetrics(dm);
layoutParams.width = dm.widthPixels;
layoutParams.height = dm.heightPixels;
mContentview.setLayoutParams(layoutParams);
}
mContentView是根布局。
这种的显示效果不会遮挡系统状态栏。
相关文章推荐
- android中activity设置全屏显示无效问题解决。
- 在Activity设置全屏时的问题
- Activity 设置全屏时的问题
- 设置Activity固定横屏并且全屏的效果
- android设置全屏时,windowSoftInputMode设置无效,软键盘遮挡问题
- 安卓开发中将activity设成translucent导致输入法遮挡edittext,windowSoftInputMode设置无效问题
- android 软键盘在全屏下设置adjustResize无效的问题
- android之theme为dialog的activity全屏问题解决办法
- Activity设置Dialog属性问题总结
- dialog style 的 activity 的全屏设置 (dialog适用)
- 设置dialog形式的activity背景有黑框的问题处理
- Android程序开发中关于设置全屏无效问题
- 安卓设置Activity切换动画无效的问题
- Android Activity的title的设置,全屏,横屏
- dialog样式的activity的全屏设置
- 解决安卓style文件中设置Activity退出动画无效或者被干扰的问题
- 创建Dialog样式的Activity,layout中layout_width设置为macth_parent后 无效的解决方法
- Android程序开发中关于设置全屏无效问题
- iOS 强制竖屏或是横屏 (代码设置后仍无效的问题)
- 解决Android设置Style中Activity的退出动画无效问题