##getWindow().setFlags(); -- 对应的是 activity申明中 android:theme="@style/xxx" 里的内容。比如getWindow().setFlags(WindowManage.LayoutParam.FLAG_FULLSCREEN,WindowManage.LayoutParam.FLAG_FULLSCREEN,);对应的就是<item name="android:windowFullscreen">false</item><!--设置全屏--><style name="xxx" ><item name="android:windowFrame">@null</item><!--边框--> <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上--> <item name="android:windowIsTranslucent">false</item><!--半透明--> <item name="android:windowNoTitle">true</item><!--无标题--> <item name="android:windowBackground">@color/transparent</item><!--背景透明--> <item name="android:backgroundDimEnabled">false</item><!--模糊--> <item name="android:windowFullscreen">false</item><!--设置全屏-->
</style>
##getWindow().setLayout
-- 对应的是,xml里的layout_width,layout_height
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
##question:<item name="android:windowFullscreen">false</item><!--设置全屏-->getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)同时设置以上两个,哪个优先?好像是后者优先,不确定。
##dialog设置窗体位置:获得该dialog的窗体,然后通过改变该窗体的属性来改变dialog的位置和大小。dialog的大小是被其父亲activity限制了,特别是actionbaractivity,
就算设置为全屏,其actinbar也无法覆盖(碰到过这个问题,但是不确定是不是都有这个问题);/* * 获取窗口对象及参数对象以修改对话框的布局设置, 可以直接调用getWindow(),表示获得这个Activity的Window * 对象,这样这可以以同样的方式改变这个Activity的属性. */Dialog = new Dialog(this, R.style.xxx);// 创建Dialog并设置样式主题,xxx的样式就是上面的style,Dailog继承自AlertDialogdialogWindow = Dialog.getWindow();WindowManager.LayoutParams lp = dialogWindow.getAttributes();dialogWindow.setGravity(Gravity.RIGHT | Gravity.TOP);int actionBarHeight = getSupportActionBar().getHeight(); lp.x = (int) ; // 新位置X坐标lp.y = (int) ; // 新位置Y坐标dialogWindow.setAttributes(lp);
安卓设置全屏,弹出式dialog窗体设置大小,位置。
最新推荐文章于 2019-06-14 18:44:06 发布