ActionBarCompat & Transparency

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

Кто-нибудь знает способ удалить этот фон?

Вот что происходит:

Панель действий

Код для фона:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#66336688"/> </shape> 

Как вы можете видеть, у drawable есть прозрачный синий цвет, который перекрывается с серым фоном по умолчанию.

Хорошо, я нашел решение возиться с SDK. Кажется, что это довольно просто, вам нужно сделать 3 вещи:

  • Создайте фоновый рисунок, как показано на моем вопросе.
  • Создайте стиль ActionBar следующим образом:

     <!-- Application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="android:actionBarStyle">@style/MyActionBar</item> <!-- Support library compatibility --> <item name="actionBarStyle">@style/MyActionBar</item> </style> <!-- ACTION BAR STYLES --> <style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar"> <item name="android:background">@drawable/actionbar_background</item> <item name="android:windowActionBarOverlay">true</item> <!-- Support library compatibility --> <item name="background">@drawable/actionbar_background</item> <item name="windowActionBarOverlay">true</item> </style> 
  • Используйте функцию Window для наложения ActionBar с помощью метода Support (игнорируйте предупреждение Eclipse относительно уровня API для константы, я использовал аннотацию SuppressLint для удаления предупреждения):

     @SuppressLint("InlinedApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); setContentView(R.layout.activity_home);} 

Ответ ChristianGuerrero велик, но вы должны прямо поставить элемент:

 <item name="android:windowActionBarOverlay">true</item> 

Внутри стиля AppTheme. Тогда вам не нужно ничего добавлять в свой метод onCreate.