(안드로이드) Recycler뷰와 Toolbar 연동시키기

**
CoordinatorLayout의 뷰 계층 구조에 속한 특정 뷰의 스크롤 액션을 기준으로 앱바의 요소들이 사라지거나 나타나게 하기 위해 CoorinatorLayout을 사용할 수 있다. 
예를들어, RecyclerView의 리스트 항목을 스크롤할 때 그렇게 될 수 있다. 그리고 이렇게 하려면 스코롤이 생기는 요소와 그로 인해 연동되는 요소 모두의 속성을 설정해야 한다.

스크롤이 생기는 요소(여기서는 RecyclerView)의 경우에는 android:layout_behavior(또는 app:layout_bahavior)속성을 appbar_scrolling_view_behavior로 설정해야 한다.


<android.support.v7.widget.RecyclerView    android:id="@+id/recycler_view"    android:layout_width="match_parent"    android:layout_height="match_parent"


app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

<android.support.design.widget.AppBarLayout    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar        android:id="@+id/toolbar"        android:layout_width="match_parent"        android:layout_height="?attr/actionBarSize"        android:background="?attr/colorPrimary"        app:popupTheme="@style/AppTheme.PopupOverlay" />

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




--->AppBar의 자식요소는 Toolbar뿐이다. 따라서 RecyclerView에서 리스트가 스크롤될 때 Toolbar가 연동되게
(사라지거나 나타나게)하려면 Toolbar의 app:layout_scrollFlags속성을 설정해야 한다.

이때, 우리가 필요한 값으로 지정할 수 있고, 그 값은 다음 중 하나 이상으로 구성될 수 있다.

  • scroll- 이 뷰가 화면에서 사라질 수 있음을 나타낸다. 이 값이 설정되지 않으면 이 뷰는 화면 위쪽에 항상 남아있는다.
  • enterAlways- scroll옵션과 같이 사용될 때 위쪽으로 스크롤하는 경우는 사라지고, 아래쪽으로하면 다시 나타난다.
  • enterAlwaysCollapsed- enterAlways와 유사하지만 아래쪽으로 스크롤 하는 경우만 다르다.
  • 즉, 아래쪽으로 스크롤할 때 스크롤되는 리스트의 끝에 도달했을 때만 이 뷰가 다시 나타난다. 만일 minHeight
  • 속성을 설정하면 그 값에 도달했을 때만 이 뷰가 다시나타난다. 이 옵션은 enterAlways와 scroll모두를 같이 사용할때
  • 동작한다.
  • exitUntilCollapsed- 이 값이 설정되면 위쪽으로 스크롤하는 동안 minHeight에 도달할 때까지만 이 뷰가 사라진다.
  • 그리고 스크롤 방향이 변경될 때까지는 minHeight지점에 남아있는다.

댓글

이 블로그의 인기 게시물

(18장) WebSocekt과 STOMP를 사용하여 메시징하기

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬