#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
.