Activity的全屏显示

        这里的全屏显示指的是消除Activity的标题栏和系统的的状态栏。总结下,可以有三种方式实现,不过也有些地方值得注意,下面分别对每种方式及其使用存在的问题进行阐述。

方法一:编程实现

                在java程序中添加以下代码:

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

两个问题需要注意:

1、添加时机:在需要全屏显示的activity的界面显示函数setContentView( )调用前进行设置,否则报以下错误:

E/AndroidRuntime(  479): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
E/AndroidRuntime(  479): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
E/AndroidRuntime(  479): 	at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime(  479): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
E/AndroidRuntime(  479): 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(  479): 	at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  479): 	at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime(  479): 	at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  479): 	at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(  479): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(  479): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(  479): 	at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(  479): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
E/AndroidRuntime(  479): 	at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:181)
E/AndroidRuntime(  479): 	at android.app.Activity.requestWindowFeature(Activity.java:2729)
E/AndroidRuntime(  479): 	at XXXActivity.onCreate(IHomeActivity.java:16)
E/AndroidRuntime(  479): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(  479): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
E/AndroidRuntime(  479): 	... 11 more
2、存在问题:这种方法可以达到全屏显示效果,但activity的标题栏会有短暂的停留,看起来很不爽

方法二:通过XML文件进行配置

                在AndroidManifest.xml中,为需要进行全屏显示的activity添加如下主题:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
这种方法堪称完美,简单而且没有方法一中存在的那些问题,推荐使用!

方法三:组合拳,编码和xml配置同时使用

                这种方法是在方法一的基础上改进而来。具体做法是:

1)、按照方法一添加代码到java中

2)、在AndroidManifest.xml中,为需要进行全屏显示的activity添加如下主题:

android:theme="@android:style/Theme.NoTitleBar"
这种方法可以实现同方法二一样的i效果。本质上来说,就是通过在xml文件中添加相应的配置来消除方法一中的问题2来实现的。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何雷 — 智能汽车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值