Android, как получить AppCompat. Полупрозрачная тема типа с поддержкой actionbar?

Я хотел бы добавить поддержку actionbar к одной из моих операций, я ранее использовал theme.translucent с этим действием, но для создания поддержки actionbar работой, я должен был наследовать Тему. AppCompat, я должен поддержать полупрозрачную тему в этом действии, но к сожалению нет Темы. AppCompat.translucent, который я вижу по умолчанию, является там каким-либо способом, которым это может быть сделано?

62
задан 31 December 2013 в 23:16

4 ответа

Можно создать новый набор стилей для использования, которые имеют те же свойства как Theme.Translucent от themes.xml .

Добавляют следующее к Вашему файлу styles.xml:

<style name="Theme.AppCompat.Translucent">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>

можно изменить префикс Theme.AppCompat на что-то еще, если Вы хотите наследовать другие вещи от темы, такие как диалоговые стили и т.д., Например, имя как Theme.AppCompat.Light.Translucent имело бы свойства Легкой темы.

Для использования нового стиля установите свойство темы на @style/Theme.AppCompat.Translucent

<activity
    android:name=".TranslucentActivity"
    android:theme="@style/Theme.AppCompat.Translucent" >
</activity>
148
ответ дан 31 October 2019 в 13:12

Parama,

<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@android:style/Animation</item>
    </style>

Это должно быть заголовком стиля, если Вы хотите панель инструментов на disappear.you, может использовать любую родительскую тему, которая имеет NoActionBar для других эффектов.

Hope это помогает

36
ответ дан 31 October 2019 в 13:12

Если мы используем Полупрозрачный для прозрачного действия. Это поднимает другие вопросы - цвет Msgbox (теперь белый ранее черный), диалоговый цвет По умолчанию, счетчики делают выпадающий, но не показывают подчеркивание и выпадающую стрелку. Счетчики являются цветным черным черным текстом; выпадающий белый выпадающий черный текст и и т.д. преодолеть эту проблему, можно просто использовать ниже кода

В стиле

<style name="Theme.AppCompat.Transparent.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
 <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

В файле манифеста

<activity
        android:name=".activity.YourActivityName"
        android:theme="@style/Theme.AppCompat.Transparent.NoActionBar" />

, я надеюсь, что это поможет Спасибо

4
ответ дан 31 October 2019 в 13:12

Ответ Cameron хороший взлом , но он произвел плавающую строку меню и окрасил мою строку состояния, которую я не сделал требуемый. Таким образом, я добавил больше атрибутов XML для того, чтобы сделать строку состояния прозрачной (для sdk> =19) и использовал код Java для того, чтобы сделать строку меню невидимой.

mainActivity.java:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportActionBar().hide();
     ...
    }
     ...
}

styles.xml

<style name="AppTheme.TranslucentBG">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>

    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">true</item>

</style>

manifest.xml

<application
    android:icon="@mipmap/ic_launcher"
    ...
    android:theme="@style/AppTheme"
    ...
    >


    <activity android:name=".MainActivity"
        android:theme="@style/AppTheme.TranslucentBG"
        ...
        >
        ...
    </activity>
</application>
2
ответ дан 31 October 2019 в 13:12

Другие вопросы по тегам:

Похожие вопросы: