【问题标题】:Android -- How to disscociate the name of the application from the titlebar?Android -- 如何将应用程序的名称与标题栏分离?
【发布时间】:2011-07-04 18:02:27
【问题描述】:

我向一个 android 应用程序添加了一个自定义标题栏,这个标题栏(它是一个普通的 png)显示在主活动中。问题是主活动还使用label 标签定义了应用程序的名称,如下所示:

<activity android:name=".MainActivity" 
                  android:theme="@style/customTheme"
                  android:screenOrientation="portrait"
                  android:label="@string/app_name">
              <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
 </activity>

而且标题栏上也报了这个标签!如何将两者分开? (基本上,仍然可以为应用程序命名,而不会影响我的自定义标题栏)。

谢谢!

【问题讨论】:

标签: android titlebar


【解决方案1】:

您可以通过在页面的 java 代码中使用 setTitle("THE TITLE"); 来更改任何活动的标题。如果要使用 XML FILES 中定义的字符串,可以使用setTitle(R.string.stringName)

【讨论】:

  • 这可行,但是当应用程序启动时,文本会在消失之前保留片刻。我在某处读到这是 android 所做的某种优化,但我再也找不到链接,也不知道如何解决这个问题。有什么想法吗?
  • 您可以通过将AndroidManifest xml文件中的&lt;intent-filter&gt;更改为&lt;intent-filter android:label=""&gt;来单独设置启动器图标的文本。
  • (我刚刚重新阅读了这个问题,我认为您正在寻找的是下面发布的答案 kameny,尽管我不确定。)
  • Kameny 的想法是完全删除标题栏:)。我想删除文本。您的解决方案是最接近的。到目前为止,我设法通过添加不需要标题栏的 splahscreen 来解决这个问题。
【解决方案2】:

我的意见是在屏幕顶部创建自己的自定义标题栏,并在 Activity 的清单中设置无标题栏选项。

android:theme="@android:style/Theme.NoTitleBar"

【讨论】:

  • 我需要一个标题栏,实际上我已经有了自己的自定义标题栏。
  • 我想我误解了你想要什么。您需要自定义标题栏上方的标题栏,对吗?
  • 您是否尝试覆盖 Activity 类中的 onTitleChanged(CharSequence title, int color)?
【解决方案3】:

尝试将 mainactivity 的标签更改为类似 android:label="@string/main_header" 的内容,并在 strings.xml 中定义字符串标题...

希望对你有帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多