6

Вот моя установка, я бегу DrawerLayout, в это CoordinatorLayout, содержащий AppBarLayout и nestedscrollview. Я стараюсь, чтобы прокрутка вложенного scrollview обычно и панель инструментов были скрыты при прокрутке вниз и reppear при прокрутке вверх. Вложенный внутри - это мой XML-код. Поблагодарили бы за любую помощь .. прочитали все связанные вопросы и внесли свои ответы без каких-либо успехов.CoordinatorLayout не скрывает панель инструментов при прокрутке, несмотря на осуществление всех необходимых параметров

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/drawer_layout_admin" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/admincoordinator" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <include 
      android:id="@+id/app_bar" 
      layout="@layout/app_bar" 
      app:layout_scrollFlags="scroll|enterAlways" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 
     android:id="@+id/adminrelScroll" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

</android.support.design.widget.CoordinatorLayout> 

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_drawer" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:headerLayout="@layout/drawer_header" 
    app:menu="@menu/menu_drawer" /> 

+0

Для меня также же проблема, события прокрутки не на всех работающих. У тебя был ответ на это? – Naruto

+0

такой же здесь. Это странно – ThanosFisherman

+0

@Все любое найденное решение для этого. Это серьезно ломает голову. –

ответ

1

Я думаю, что делает использование нового CollapsingToolbarLayout поможет ... Краткое описание от некоторого very useful exploration of the new Android Design Support Library показывает, как обернуть панель инструментов в CollapsingToolbarLayout и настраивать эффекты путем установки layout_collapseMode.

обновление

Я думаю, что добавление onScrollListener к вашей ListView и показать/скрыть панель инструментов, как этот пример из this answer:

getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 

listView.setOnScrollListener(new OnScrollListener() { 
    int mLastFirstVisibleItem = 0; 

    @Override 
    public void onScrollStateChanged(AbsListView view, int scrollState) { }   

    @Override 
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 

     if (view.getId() == listView.getId()) { 
      final int currentFirstVisibleItem = listView.getFirstVisiblePosition(); 

      if (currentFirstVisibleItem > mLastFirstVisibleItem) { 
       getSupportActionBar().hide(); 
      } else if (currentFirstVisibleItem < mLastFirstVisibleItem) { 
       getSupportActionBar().show(); 
      } 

      mLastFirstVisibleItem = currentFirstVisibleItem; 
     }    
    } 
}); 
+0

не является схемой разворачивания панели инструментов для случая, когда у вас есть (дополнительная?) Большая панель инструментов, которая восстанавливается до нормального размера при прокрутке, чего я хочу добиться, это просто скрыть панель инструментов обычного размера при прокрутке. что сделало мой вопрос ясным :) –

4

Я была такая же проблема в течение недели и попытался почти все для его решения. Однако мне удалось решить проблему.

Где у вас есть что-то вроде ...

<include 
    android:id="@+id/app_bar" 
    layout="@layout/app_bar" 
    app:layout_scrollFlags="scroll|enterAlways" /> 

... заменить это с тем, что в вашем app_bar.xml макете. Например:

<android.support.v7.widget.Toolbar 
    android:id="@+id/main_toolbar" 
    style="@style/AppTheme.Toolbar" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    app:layout_scrollFlags="scroll|enterAlways"/> 

Кажется, что по какой-то причине, скроллинг с CoordinatorLayout не работают при использовании <include> тега.

+0

Я так ненавижу, что это все, что мне нужно все это время! XD Спасибо! – leenephi

1

Как @Farbod Salamat-Zadehwas сказал ранее: CoordinatorLayout не работает при использовании метки <include>.
Но вы можете использовать <include> таким образом:

<include 
    android:id="@+id/app_bar" 
    layout="@layout/app_bar" /> 

Параметр app:layout_scrollFlags="scroll|enterAlways" просто должен быть перемещен в ваш app_bar.xml если это приемлемо для вас

 Смежные вопросы

  • Нет связанных вопросов^_^