Как отключить сбой CollapsingToolbar, когда прокрутка не имеет содержимого?

Я использую конструкцию поддержки Android «com.android.support:design:22.2.1». Моя проблема заключается в том, что когда прокрутка не содержит в ней контента, сворачивающаяся панель инструментов все же позволяет действовать с коллапсом. Мне нужно удалить свертывание представления, если в свитке нет содержимого.

Мой 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:fitsSystemWindows="true"> <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:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <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:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" 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> 

ВОПРОС UDPATE:

Я закончил с отключением и включением свертывания представления. Я использовал эту строку кода, чтобы отключить свертывание:

 AppBarLayout.LayoutParams appbarParams = (AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams(); appbarParams.setScrollFlags(0); collapsingToolbar.setLayoutParams(p); 

Проблема заключается в том, что панель приложения является силой, чтобы высота флагов scrollflags равнялась 0. Я попытался использовать appbar.setElevation (0), но это не имеет никакого эффекта. Как я могу удалить высоту из моей панели приложений?

Получите ссылку на appbarlayout и установите setScrollFlags.

 AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); p.setScrollFlags(0); toolbar.setLayoutParams(p); 

Попробуйте appbarParams.setScrollFlags(-1); И appBarLayout.setExpanded(true, true) чтобы удалить высоту.

И если у вас есть recyclerView в фрагменте, попробуйте recyclerView.setNestedScrollingEnabled(false);

Необходимо отключить расширение на CollapsingToolbarLayout для определенных фрагментов

Чтобы остановить крах collapsingtoolbar, не давайте

app:layout_scrollFlags="scroll|exitUntilCollapsed" в файле XML. Вы можете удалить этот код

«В свитке нет содержимого», я полагаю, что вы имеете в виду «нет фрагмента». Для этого, я думаю, вам придется сначала изменить <fragment> на <FrameLayout> , а затем добавить фрагмент программно с помощью getFragmentManager().beginTransaction() , а затем проверить, присутствует ли фрагмент (то есть не нуль), например так:

  if (getFragmentManager().findFragmentById(R.id.fragment_name) != null) { // here try RKNP's code to disable the appBar from collapsing } 
Intereting Posts