停止应用程序名称在标题栏中闪烁

时间:2010-07-23 02:49:02

标签: android

我为我的应用程序制作了自定义标题栏。但是,当应用程序首次加载时,应用程序名称会在文本显示之前显示在标题栏中一会儿。我该如何阻止这种情况发生?

我在我的主要活动中设置自定义标题栏:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    setContentView(R.layout.main);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle);

mytitle.xml是我设置文本的地方:

<?xml version="1.0" encoding="utf-8"?>
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myTitle"
    android:text="my text"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearance"
    />

我的标题栏背景不闪烁,只是文字。

感谢。

3 个答案:

答案 0 :(得分:11)

基本说明:在启动应用程序时,为了尽快响应用户,Android首先会显示应用程序的“预览”窗口,然后才开始启动其进程。它通过获取应用程序的AndroidManifest.xml中提供的信息并创建一个看起来像它的空活动的窗口来实现这一点。因此,您应该将清单中的主题设置为尽可能匹配实际UI的内容。

对于自定义标题的情况,您无能为力,因为标题的外观取决于您的代码实际执行的操作,并且您的代码尚未运行。您可以做的最好的事情是使用android:theme="@android:style/Theme.NoTitleBar",这样预览窗口根本不会尝试显示任何标题栏...当然,在您的活动中,您需要通过调用{{1}来清除它返回默认主题。

详细说明需要放置setTheme(android.R.style.Theme)的位置:

AndroidManifest.xml

答案 1 :(得分:1)

另一种解决方案是设置标签:

android:label=""

在清单文件中的所有活动中。

答案 2 :(得分:0)

好吧,在设置主要内容之前,您可以先尝试设置标题栏。

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
  getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle);
  setContentView(R.layout.main);