2015-09-22 5 views
6

Я уже достиг удаления layout_scrollFlags в моем CollapsingToolbarLayout. но мне нужно удалить layout_behavior моего NestedScrollView, так что, когда в моем вложенном представлении прокрутки нет содержимого, сбой панели инструментов также будет отключен. Удаление layout_behavior моего NestedScrollView очень просто, просто я удаляю строку кода в вашем xml буквально, но как я могу удалить его программно?Как программно удалить поведение макета моего NestedScrollView?

мой XML:

<android.support.design.widget.CoordinatorLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 

      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <android.support.design.widget.AppBarLayout 
       android:id="@+id/appbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:fitsSystemWindows="true" 
       android:background="@android:color/white"> 

       <android.support.design.widget.CollapsingToolbarLayout 
        android:id="@+id/collapsing_toolbar" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:fitsSystemWindows="true" 
        app:contentScrim="?attr/colorPrimary" 
        app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

        <fragment 
         android:id="@+id/pawfile_header" 
         android:name="com.lightbulb.pawesome.fragments.PawfileHeaderFragment" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:layout_marginLeft="10dp" 
         android:layout_marginTop="10dp" 
         android:fitsSystemWindows="true" 
         app:layout_collapseMode="parallax" /> 

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

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

      <fragment 
       android:id="@+id/pawfile_timeline" 
       android:name="com.lightbulb.pawesome.user_timeline.PawesomeUserTimelineFragment" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

Вы можете использовать визуализацию макета GONE. –

+0

Прошу прощения, но панель инструментов с разбивкой имеет ребенка. так что, если я собираюсь установить его видимость, чтобы исчезнуть, вид внутри панели инструментов слияния тоже исчезнет –

+0

@android_softy любезно просмотрите мой обновленный вопрос –

ответ

1

Вы можете программно удалить поведение макета вашего NestedScrollView, установив его на нуль в его LayoutParams, который должен быть CoordinatorLayout.LayoutParams типа:

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) myNestedScrollView.getLayoutParams(); 
params.setBehavior(null); 
+0

Это не похоже, работают на меня. Я даже попытался переустановить layoutParams после вызова setBehavior (null). – Allison

10

Try удаление «appbar_scrolling_view_behavior» из фрагмента и очистка флагов прокрутки от CollapsingToolbarLayout

CoordinatorLayout.LayoutParams coordinatorLayoutParams = (CoordinatorLayout.LayoutParams) pawfileTimeline.getLayoutParams(); 
coordinatorLayoutParams.setBehavior(null); 

AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); 
toolbarLayoutParams.setScrollFlags(0); 
+0

Настройка флагов прокрутки на 0 была тем, что сработало для меня. Удаление поведения CoordinatorLayout заставило бы мою панель инструментов исчезнуть. –