android开发隐藏了actionbar仍然短暂闪现的解决方法

有时候我们在代码里隐藏了actionbar,在打开应用时,仍然短暂闪现下actionbar,用户体验很不好。

最简单的方法是 在AndroidManifest.xml中设置主题中配置不显示title或者action,即为:

<style name="NoTitle" parent="android:Theme.Holo.Light">

<item name="android:windowActionBar">true</item>

</style>

或者

<style name="NoTitle" parent="android:Theme.Holo.Light">

<item name="android:windowNoTitle">true</item>

</style>

但是有时候,你如果想显示actionbar,就不能在AndroidManifest.xml这么设置,我试过,做上述设置,就不能显示出actionbar了(这个我试的结果是这样,有可以显示的请给我回复),

这时,怎么解决这个问题呢,在stackoverflow看到有解决方案,这里贴出来:

Setting android:windowActionBar=false truly disables the ActionBar but then, as you say, getActionBar() returns null. This is solved by:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);

getActionBar().hide();

setContentView(R.layout.splash); // be sure you call this AFTER requestFeature

But now there is another problem. After putting windowActionBar=false in the theme, the Activity draws its normal Window Title instead of an ActionBar.

If we try to avoid this by using some of the *.NoTitleBar stock themes or we try to put true in our own theme, it won‘t work.

The reason is that the ActionBar depends on the Window Title to display itself - that is the ActionBar is a transformed Window Title.

So the trick which can help us out is to add one more thing to our Activity theme xml:

<item name="android:windowActionBar">false</item>

<item name="android:windowTitleSize">0dp</item>

This will make the Window Title with zero height, thus practically invisible .

In your case, after you are done with displaying the splash screen you can simply call

setContentView(R.layout.main);

getActionBar().show()

and you are done. The Activity will start with no ActionBar flickering, nor Window Title showing

时间: 2024-10-10 18:30:22

android开发隐藏了actionbar仍然短暂闪现的解决方法的相关文章

Android开发调试无法连接到夜神模拟器的解决方法

Android开发调试无法连接到夜神模拟器的解决方法: 一般原因是adb的版本不一致造成的!!!!!换成一样的就可以了. 在网上看到的方法,特记录下来: 1.任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉. 2.找到开发环境的SDK的目录和夜神模拟器的目录,将SDK目录下的adb.exe文件,复制到夜神模拟器的目录下,因为夜神模拟器目录下原本的adb文件名字叫做nox_adb.exe,因此复制过去之后也得改名为nox_adb.exe. 3.这样开

Android开发检测App从后台进入前台的解决方法

public class ActLifecycle implements ActivityLifecycleCallbacks { private int mPreActivityStartedCount = 0; private int mActivityStartedCount = 0; private int mActivityOrientation = Configuration.ORIENTATION_UNDEFINED; @Override public void onActivit

Android开发常见的Activity中内存泄漏及解决办法

上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法.本文将会以"为什么""怎么解决"的方式来介绍这几种内存泄漏. 在开篇之前,先来了解一下什么是内存泄漏. 什么是内存泄漏? 内存泄漏是当程序不再使用到的内存时,释放内存失败而产生了无用的内存消耗.内存泄漏并不是指物理上的内存消失,这里的内存泄漏是值由程序分配的内存但是由于程序逻辑错误而导致程序失去了对该内存的控制,使得内存浪费. 怎

ActionBar自己定义改动无效解决方法

假设程序支持API11下面的版本号,那么须要改动多个地方 values-v14 和values-v11以下的styles中也要写上 <style name="AppTheme" parent="AppBaseTheme">        <!-- All customizations that are NOT specific to a particular API-level can go here. -->        <item

Android ListView的item点击无响应的解决方法

如果listitem里面包括button或者checkbox等控件,默认情况下listitem会失去焦点,导致无法响应item的事件,最常用的解决办法 是在listitem的布局文件中设置descendantFocusability属性. item的布局文件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.andro

Android开发中,那些让你觉得相见恨晚的方法、类或接口

本篇文章内容提取自知乎android开发中,有哪些让你觉得相见恨晚的方法.类或接口?,其实有一部是JAVA的,但是在android开发中也算常见.大多数的函数自己还是见过的,这里记录一下备忘.同时呢,也推荐一个github项目,里面记录了自己日常开发中见过的比较有用的东西开发中常用的工具.链接 Throwable类中的getStackTrace()方法,根据这个方法可以得到函数的逐层调用地址,其返回值为StackTraceElement[],而在StackTraceElement类中有四个方法g

J2EE开发工作中遇到的异常问题及解决方法总结

转自:http://blog.csdn.net/rchm8519/article/details/41624381 1.    HttpClient I/O exception: 错误信息:I/O exceptioncaught when processing request: Connection timed out:connect 错误原因:IP不正确. 解决方法:改正IP 2.    Ambiguous handler methods mapped 错误信息:java.lang.Illeg

Android adt v22.6.2-1085508 自己主动创建 appcompat_v7 解决方法,最低版本号2.2也不会出现

Android 开发工具升级到22.6.2在创建project时仅仅要选择的最低版本号低于4.0,就会自己主动生成一个项目appcompat_v7,没创建一个新的项目都会自己主动创建,非常是烦恼... 之前在网上也找过方法,都是天篇一律 创建project时最低选择 4.0,但这样弊端非常明显,不能 在低于4.0的版本号上执行,应用的兼容性太弱了.. 也是烦恼了一段时间的,今天偶然发现了一个完美的解决方法 仅仅要在创建project的时候选择不创建Activity就能够攻克了哈,非常easy吧

Android SDK安装后错误或不完整的解决方法

1.Android SDK安装后没有可更新包的列表? 找到SDK的安装目录,D:\Android\android-sdk 运行DK Manager.exe打开后在菜单Tools->Options 然后在Others框中,把那几个色打上(使用http而不是安全链接https,否则谷歌网站会拒绝) 2.Android SDK安装后,更新时经常断网出错? 打开文件夹C:\Windows\System32\drivers\etc 找到hosts文件,用记事本打开,在末尾加以下内容: 127.0.0.1