3

Я использую новую панель инструментов AppCompat-v21. Я хочу сделать это, чтобы скрыть панель действий, когда пользователь начинает прокручивать вниз и снова показывать панель действий, когда пользователь прокручивает вверх. Это похоже на приложение для Google Play. У меня также есть вкладка под панелью инструментов, например, приложение для игры Google. Это должно остаться там.Панель быстрого возврата с панелью инструментов lollipop android

Я пробовал использовать коды из приложения google IO. Но это заставляет панель инструментов исчезать, а основной контент не перемещается, когда панель инструментов исчезает. Остается пустое пространство, где раньше была панель инструментов. Возможно, потому, что эта реализация предназначена только для просмотра списка и сетки.

Любая идея, как это сделать?

+0

Hi Alam, вы нашли решение проблемы? – Adelino

+0

@ Adelino Нет, я этого не делал. Используя источник приложения Google IO, мне удалось это сделать в некоторой степени. Все еще не работает так, как я хочу. –

+1

Привет, Алам, после поиска хороших примеров, я нашел этот https://github.com/ksoichiro/Android-ObservableScrollView репо, что я взял то, что мне было нужно, и это сработало для меня. – Adelino

ответ

2

Что вам нужно сделать, это в основном создать свою собственную тему ActionBar, который устанавливает windowActionBarOverlay истина:

<!-- the theme applied to the application or activity --> 
<style name="CustomActionBarTheme" 
     parent="@android:style/Theme.AppCompat"> 
    <item name="android:windowActionBarOverlay">true</item> 

    <!-- Support library compatibility --> 
    <item name="windowActionBarOverlay">true</item> 
</style> 

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

<!-- Support library compatibility --> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingTop="?attr/actionBarSize"> 
    ... 
</RelativeLayout> 

После того, как вы создали свою собственную тему ActionBar, вы больше не должны видеть лишнее пространство. Эти фрагменты кода были взяты непосредственно с Android Developer Training Guide. Перейдите по ссылке, чтобы получить более подробную информацию о действии ActionBarOverlay.

0

Более простой подход заключается в использовании app:layout_scrollFlags.

<android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="?attr/colorPrimary" 
      android:minHeight="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 

Таким образом, панель инструментов автоматически обнаружит прокрутку и начнет скрываться или показывать.

P.S. Если вы используете ListView, вам необходимо изменить его на RecycleView