Android Studio — Прозрачная панель действий — панель навигации

#android #android-actionbar #themes #transparent #android-theme

#Android #android-actionbar #темы #прозрачный #android-тема

Вопрос:

У меня есть шаблон панели навигации. Я изменил панель действий, поэтому я не вижу названия. И я знаю, как изменить цвета, но я не знаю, как получить этот эффект:

введите описание изображения здесь

Это мой текущий статус:

введите описание изображения здесь

Это мой styles.xml (какую тему я использую):

 <resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
  

Ответ №1:

Вы можете использовать Toolbar с прозрачным фоном.

activity_main.xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@ id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@ id/your_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#4BAE4F"
        android:orientation="vertical">

        <!--Place your content here-->

    </LinearLayout>

    <android.support.v7.widget.Toolbar
        android:id="@ id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@android:color/transparent"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    </android.support.v7.widget.Toolbar>

</RelativeLayout>
  

MainActivity.java:

 public class MainActivity extends AppCompatActivity {

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

        setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
    }
}
  

styles.xml:

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

    </style>
  

Из API 19 вы можете установить параметр <item name="android:windowTranslucentStatus">true</item> в своем styles.xml , чтобы также сделать строку состояния прозрачной.

Комментарии:

1. Я пытался, но приложение продолжает сбоить. Есть ли другой способ получить этот эффект, или мне нужно перезапустить все приложение?

2. проверьте вывод logcat, чтобы узнать причину сбоя. Также убедитесь, что вы установили родительский элемент вашей AppTheme в Theme.AppCompat.Light.NoActionBar .