반응형
프로그래밍 방식으로 툴바에 대한 app : layout_scrollFlags를 설정하는 방법
내 앱에는 뷰 페이저와 4 개의 탭이 있으며 각 탭에는 많은 조각이 있습니다. 하지만 2 개의 특정 탭에서 recyclerview를 스크롤하면서 툴바를 위 / 아래로 스크롤하고 싶습니다. 하지만 다른 탭에서 툴바 스크롤을 차단하는 방법을 모르겠습니다. 각 조각에 대해 툴바를 가져 오려고했지만 할 수없는 것 같습니다. 누구든지이 문제를 해결할 아이디어가 있습니까?
선택한 탭에 따라 스크롤 플래그를 변경하지 않는 것이 좋습니다. 비 recyclerview 탭으로 스크롤 할 때 도구 모음이 자동으로 반환 (및 콘텐츠가 아래로 이동)하는 것은 매우 혼란스럽고 원하는 상호 작용 패턴이 아닐 수 있습니다 ( 두 개의 RecyclerView
탭이 서로 옆에 있으면 분노 ).
그러나 직접보고 싶다면 setScrollFlags () 를 사용하여 스크롤 플래그를 프로그래밍 방식으로 설정할 수 있습니다 .
Toolbar toolbar = ... // your toolbar within an AppBarLayout
AppBarLayout.LayoutParams params =
(AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL
| AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
플래그를 지우려면
params.setScrollFlags(0)
// Show toolbar when we are in maps mode
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) mToolbar.getLayoutParams();
CoordinatorLayout.LayoutParams appBarLayoutParams = (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();
if(isMapIndex) {
params.setScrollFlags(0);
appBarLayoutParams.setBehavior(null);
mAppBarLayout.setLayoutParams(appBarLayoutParams);
} else {
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
appBarLayoutParams.setBehavior(new AppBarLayout.Behavior());
mAppBarLayout.setLayoutParams(appBarLayoutParams);
}
반응형
'developer tip' 카테고리의 다른 글
다중 반응 열을 수행 할 때 행 지우기-부트 스트랩 (0) | 2020.12.29 |
---|---|
Docker 복사 및 소유자 변경 (0) | 2020.12.29 |
v4.Fragment에서 런타임 권한을 요청하고 콜백이 Fragment로 이동합니까? (0) | 2020.12.29 |
새로 고침시 redux 상태 트리를 유지하려면 어떻게해야합니까? (0) | 2020.12.29 |
Mac의 x86 어셈블리 (0) | 2020.12.29 |