Android 自定义标题栏-系统标题栏会短暂显示吗?

Android 自定义标题栏-系统标题栏会短暂显示吗?,android,Android,我有一个自定义布局,我想用它作为我的android应用程序的标题栏。找到的技术(链接在底部)可以工作,但系统标题栏在调用onCreate()之前显示。显然,这看起来很不和谐,因为有一段时间显示了系统标题栏,然后显示了我的自定义标题栏: // styles.xml <resources> <style name="MyTheme"> <item name="android:windowTitleSize">40dip</item> &

我有一个自定义布局,我想用它作为我的android应用程序的标题栏。找到的技术(链接在底部)可以工作,但系统标题栏在调用onCreate()之前显示。显然,这看起来很不和谐,因为有一段时间显示了系统标题栏,然后显示了我的自定义标题栏:

// styles.xml
<resources>
  <style name="MyTheme">
    <item name="android:windowTitleSize">40dip</item>
  </style>
</resources>

// One of my activities, MyTheme is applied to it in the manifest.
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    setContentView(R.layout.my_activity);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_header);
}
//styles.xml
40度
//我的活动之一,MyTheme在清单中应用于它。
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE\u自定义\u标题);
setContentView(R.layout.my_活动);
getWindow().setFeatureInt(Window.FEATURE\u CUSTOM\u TITLE,R.layout.my\u CUSTOM\u header);
}
我总是可以隐藏系统标题栏,并显示我自己的在线,也许每一个布局,但这不是很友好

谢谢


尝试用XML创建自定义主题样式,然后在AndroidManifest.XML文件中设置活动的主题属性


我认为这是一个框架限制。我在一些应用程序中遇到了同样的问题,最终的解决方案是告诉框架我根本不想要标题栏,然后在布局中创建自己的标题栏。include指令使我可以忍受,例如:

<include layout="@layout/title" />

当我在我的活动中使用requestWindowFeature(Window.FEATURE\u NO\u TITLE)时,我也会遇到同样的问题,在首次加载活动时,我会在构建活动时短暂地看到系统标题栏

当我切换到使用一个主题来告诉框架我不想要一个标题时,问题消失了,现在我在第一次加载时直接看到了自己的标题。造型很容易做到这一点:

<style name="FliqTheme" parent="@android:Theme.Black">
    <item name="android:windowNoTitle">true</item>
</style>

真的

我知道这不适用于您的自定义标题问题,但正如ptc所提到的,如果您将自定义标题移动到样式/主题定义中(这是通过覆盖主题中的系统标题样式来实现的),我认为您将走上正确的道路。

今天我在尝试自定义标题时也遇到了同样的问题。我通过在
AndroidManifest.xml
中将
android:theme
设置为
android:style/theme.NoTitleBar
,并在我的活动的
onCreate
回调函数中将
setTheme()
调用为我想要的实际主题。

通过设置android:theme的方法对我不起作用,我在Activity子类的onCreate()中添加了以下代码:

  getWindow().addFlags(LayoutParams.FLAG_FULLSCREEN);

您是否试图在显示自定义栏之前不显示系统(空)栏?嗯,自定义栏是一个layout.xml文件-理想情况下,应用程序会立即显示该custom layout.xml文件。现在看起来很尴尬,系统栏显示了一秒钟,然后被我的custom layout.xml栏替换。您好,是的,我有一个自定义主题,但您可以在其中定义的只是标题栏的背景。我的自定义标题栏是一个布局,上面有一些控件(比如twitter)。所以我们在一家初创公司展示一个时髦的系统标题栏,直到真正的标题栏被展示出来。是的,我发现了同样的问题,可惜我们不得不自己做。我们失去了系统工具栏提供的阴影效果。