ActionBar с NoTitleBar Theme.Holo.Light

У меня есть приложение с вкладками для Android. Я не хочу, чтобы в верхней части экрана отображалось что-то еще, кроме вкладок.

Это работает нормально, единственная проблема заключается в том, что при запуске приложения на короткое время ‹ 1 секунды я вижу строку заголовка со значком запуска приложения.

Почему это происходит, есть ли способ предотвратить это?

стили.xml

<resources>
    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
        <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
    </style>

    <style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:titleTextStyle">@style/NoTitleText</item>
        <item name="android:subtitleTextStyle">@style/NoTitleText</item>
        <item name="android:icon">@android:color/transparent</item>
    </style>

    <style name="NoTitleText">
            <item name="android:textSize">0sp</item>
            <item name="android:textColor">#00000000</item>
    </style>
</resources>

AndroidManifest.xml

    <activity
        android:name="com.example.nfcproducttracing.ProductTracer"
        android:label="@string/app_name" 
        android:theme="@style/AppTheme"
        android:launchMode="singleTask">

Это делает мой текст на вкладке белым и едва заметным.


person hermann    schedule 16.12.2013    source источник


Ответы (1)


Чтобы предотвратить это, вы должны использовать стили, определенные в XML-файле, вместо установки всего в вашем методе onCreate.

Прежде чем эта строка кода будет выполнена, actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); ваше приложение уже будет видно.

Попробуй это:

<resources>
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    </style>


    <style name="AppTheme" parent="AppBaseTheme">
        <item name="actionBarStyle">@style/CustomActionBarStyle</item>
    </style>

<style name="CustomActionBarStyle" parent="@style/Widget.Holo.ActionBar">
        <item name="titleTextStyle">@style/NoTitleText</item>
        <item name="subtitleTextStyle">@style/NoTitleText</item>
        <item name="icon">@android:color/transparent</item>
</style>

<style name="NoTitleText">
        <item name="textSize">0sp</item>
        <item name="textColor">#00000000</item>
</style>

</resources>
person Kamil    schedule 16.12.2013
comment
Как мне это использовать? Спасибо. - person hermann; 17.12.2013
comment
Я использую Theme.Holo.Light и хочу иметь панель действий для вкладок, но без заголовка. Это возможно? Я установил <item name="android:windowNoTitle">true</item> в файле styles.xml, но строка заголовка все еще видна. Пожалуйста, проверьте мой отредактированный ответ. - person hermann; 17.12.2013
comment
Пожалуйста, проверьте мое новое редактирование, это делает текст моей вкладки белым на почти белом фоне. - person hermann; 18.12.2013