Как сделать панель инструментов прозрачной?

Это сообщение Q & A, у меня есть прозрачный ActionBar, который накладывает макет. После перехода на последнюю библиотеку поддержки я был вынужден избавиться от ActionBar в пользу панели инструментов. Старые способы сделать его прозрачным и наложить этот макет больше не работает.

 true true @style/TransparentActionBar   @android:color/transparent  

Все, что вам нужно – это определить тему, которая скроет панель действий, определить стиль панели действий с прозрачным фоном и установить этот стиль в виджет панели инструментов. Обратите внимание, что панель инструментов должна быть выделена как последний вид (по всему дереву просмотров)

   

Планировка:

     

Расположение панели:

  

Создайте свой файл toolbar.xml с фоном AppBarLayout @null

       

и вот результат:

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

Проверка исходного кода Google Исходный код Я узнал, как сделать панель инструментов полностью прозрачной. Это было проще, чем я думал. Нам просто нужно создать простую форму, подобную этой.

Имя toolbar_bgtoolbar_bg

     

А затем в fragmentе или активности .. Добавьте панель инструментов, как это.

   

И здесь у нас будет полностью прозрачная панель инструментов.

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

Не добавляйте если вы это сделаете, это не сработает.

Примечание. Если вам нужно приложение AppBarLayout, установите высоту в 0, чтобы он не рисовал свою тень.

Панель инструментов работает как вид, поэтому ответ очень прост.

 toolbar.getBackground().setAlpha(0); 

Добавьте следующую строку в style.xml

   

Теперь добавьте следующую строку в стиле-v21,

   

и установите тему в качестве андроида: theme = “@ style / AppTheme”

Это сделает панель состояния прозрачной.

Просто используйте следующий код xml:

Код для макета:

  

И добавьте следующий код в colors.xml :

 #00FFFFFF 

Это даст вам желаемый результат.

Я реализовал прозрачную панель инструментов, создав две темы Theme.AppCompat.Light.NoActionBar и установив colorPrimary для прозрачного цвета.

1) Создайте две темы Создайте одну тему для непрозрачной панели инструментов:

  

Вторая тема для прозрачного / наложения Панель инструментов:

  

2) В своем макете действий поместите панель инструментов за содержание, чтобы оно отображалось перед ним:

     

3) Примените прозрачную тему к своей активности в AndroidManifest.xml

     

Возможно, вам нужно взглянуть на этот пост прозрачный Actionbar с AppCompat-v7 21

Очки, на которые указывают сообщение,

  1. Просто убедитесь, что вы используете RelativeLayout для установки панели инструментов и тела.
  2. Поместите панель инструментов в последнюю очередь.
  3. Положить прозрачный цвет для андроида: фоновый атрибут панели инструментов

Это должно решить проблему без лишних хлопот.

Самый простой способ поместить прозрачную панель инструментов – это определить непрозрачность в разделе @colors , определить раздел TransparentTheme в разделе @styles и затем поместить эти определения в свою панель инструментов.

@ colors.xml

 #33000000 

@ styles.xml

  

@ activity_main.xml

  

Это результат:

Скриншот прозрачной панели инструментов

Просто добавьте android:background="@android:color/transparent" как показано ниже в макете вашей панели приложений.

   ` 

Я знаю, что опаздываю на вечеринку. Я создал простой class для управления прозрачностью Toolbar .

 import android.annotation.SuppressLint; import android.graphics.drawable.ColorDrawable; import android.support.v7.widget.Toolbar; public class TransparentToolbarManager { private Toolbar mToolbar; private ColorDrawable colorDrawable; public static final int MAX_ALPHA = 255, MIN_ALPHA = 0; public TransparentToolbarManager(Toolbar mToolbar) { this.mToolbar = mToolbar; this.colorDrawable = new ColorDrawable(mToolbar.getContext().getResources().getColor(R.color.colorPrimary)); } public TransparentToolbarManager(Toolbar mToolbar, ColorDrawable colorDrawable) { this.mToolbar = mToolbar; this.colorDrawable = colorDrawable; } //Fading toolbar public void manageFadingToolbar(int scrollDistance) { if (mToolbar != null && colorDrawable != null) { //FadeinAndOut according to the horizontal scrollValue if (scrollDistance <= MAX_ALPHA && scrollDistance >= MIN_ALPHA) { setToolbarAlpha(scrollDistance); } else if (scrollDistance > MAX_ALPHA) { setToolbarAlpha(MAX_ALPHA); } } } @SuppressLint("NewApi") public void setToolbarAlpha(int i) { colorDrawable.setAlpha(i); if (CommonHelper.isSupport(16)) { mToolbar.setBackground(colorDrawable); } else { mToolbar.setBackgroundDrawable(colorDrawable); } } } 

и CommonHelper.isSupport ()

 public static boolean isSupport(int apiLevel) { return Build.VERSION.SDK_INT >= apiLevel; } 

попробуйте под кодом

    

style.xml

  

для панели инструментов поддержки v7 android.support.v7.widget.Toolbar :

код

 toolbar.setBackground(null); // or toolbar.setBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.transparent)); 

xml ( android:background="@null" или android:background="@android:color/transparent" )

    

если Title is invisible, установите textColor

goto res package и open color.xml установите цвет первичным на # 00000000, это сделано.

  • Крупномасштабный дизайн в Haskell?
  • MySQL - дизайн супертипа / подтипа
  • CardView не показывает Shadow в Android L
  • Выводит ли квадрат из прямоугольника нарушением Принципа замещения Лискова?
  • rails: 3 Приостановить регистрацию Цепь фильтра остановлена ​​как: require_no_authentication, обработанная или перенаправленная
  • Проверьте, имеет ли class функцию-член определенной подписи
  • Совместимость материалов дизайна с версиями ниже Android 5.0?
  • На панели инструментов нет тени по умолчанию?
  • Заказ параметров для использования каррирования
  • Как создать RESTful поиск / фильтрацию?
  • как я могу сделать css3 отзывчивым?
  • Давайте будем гением компьютера.