CollapsingToolbarLayout отключить расширение прорисовки

У меня есть CollapsingToolbar, который я условно отключил. Когда пользователь загружает представление в этом состоянии, оно выглядит как обычный объект ToolBar.

Единственная странность заключается в том, что если они перетаскиваются вниз, например, в действии стиля «потянуть для обновления», панель CollapsingToolbar расширяется, несмотря на мои пожелания и код наоборот!

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

    appBar.setExpanded(false);
    appBar.setActivated(false);
    /*CollapsingToolbarLayout.LayoutParams p = (CollapsingToolbarLayout.LayoutParams)toolbar.getLayoutParams();
    p.setCollapseMode(CollapsingToolbarLayout.LayoutParams.COLLAPSE_MODE_PIN);
    toolbar.setLayoutParams(p);

    CoordinatorLayout.LayoutParams appBarLayoutParams = (CoordinatorLayout.LayoutParams) appBar.getLayoutParams();
    appBarLayoutParams.setBehavior(null);
    appBar.setLayoutParams(appBarLayoutParams);*/
    CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams)appBar.getLayoutParams();
    lp.height = (int) getResources().getDimension(R.dimen.app_bar_height);

Я хочу отключить расширение перетаскивания, и я не видел способа сделать это. Это действие содержит recyclerview, и именно с ним в основном взаимодействуют пользователи.


comment
Ознакомьтесь с этим.   -  person Sevle    schedule 22.07.2016
comment
@Sevle, вы можете опубликовать его за награду, если вам интересно   -  person CQM    schedule 25.07.2016
comment
@CQM: вы тоже можете опубликовать макет?   -  person Federico De Gioannini    schedule 26.07.2016
comment
@CQM Я бы не хотел, это можно рассматривать как дублирование информации. Я рад, пока это помогло вам.   -  person Sevle    schedule 27.07.2016


Ответы (3)


Мне было тесно с методом. Разверните элементы управления поведением макета AppBarLayout. Поэтому вам нужно обновить методы расширения этого виджета. На основе документа AppBarLayout.

AppBarLayout appBarLayout;

//....

public void setExpandToolbar (boolean isEpand) {
    if (isExpand) {
       appBarLayout.setExpanded(true,true);
    } 
    else {
       appBarLayout.setExpanded(false,true);
    }
}

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

AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) 
toolbar.getLayoutParams();
p.setScrollFlags(0);
toolbar.setLayoutParams(p);
person GensaGames    schedule 22.07.2016
comment
по какой-то причине добавление setScrollFlags(0) приводит к тому, что он застревает как расширенный, даже с моим существующим кодом setExpanded(false) - person CQM; 22.07.2016

Чтобы предотвратить прокрутку RecyclerView или NestedScrollView от расширения или свертывания CollapsingToolbarLayout.

// scrollView can be RecyclerView or NestedScrollView
ViewCompat.setNestedScrollingEnabled(scrollView, false)

https://code.luasoftware.com/tutorials/android/how-to-disable-or-lock-collapsingtoolbarlayout-collapse-or-expand/

person Desmond Lua    schedule 11.03.2018

В котлине выглядит так: yourRV.isNestedScrollingEnabled = false

person GFPF    schedule 06.08.2020