CoordinatorLayout의 자식 인 Scrollview와 함께 도구 모음이 축소되지 않습니다.
CoordinatorLayout 사용에 대해 Google 문서를 따르려고하는데 CoordinatorLayout 내부의 ScrollView에 문제가 있습니다. 기본적으로 툴바는 일반적으로 아래로 스크롤 할 때 RecyclerView 또는 Listview와 함께 축소됩니다. 이제 ScrollView를 사용하면 축소되지 않습니다.
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
>
<TextView
android:id="@+id/tv_View"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/filler"
style="@style/TextAppearance.AppCompat.Large"
/>
</ScrollView>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
는 ScrollView
에 협조하지 않습니다 CoordinatorLayout
. NestedScrollView
대신 사용해야 합니다ScrollView
NestedScrollView를 사용하여 Coordinator Layout의 자식으로 스크롤 뷰를 축소합니다. 코드를 다음 코드로 바꿉니다.
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_View"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/filler"
style="@style/TextAppearance.AppCompat.Large"
/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
ScrollView
이 XML 속성을 유지 하고 추가 할 수 있습니다 . android:nestedScrollingEnabled="true"
따라서 CoordinatorLayout을 형제로 알고 있으며이 속성은 롤리팝 버전 이상 에서만 지원된다는 점을 기억하십시오 .
Use a NestedScrollView
instead of a regular ScrollView
when using CoordinatorLayout
.
To make the
CollapsingToolbarLayout
scroll you can trigger the scroll behavior by setting a minimum height of the child Layout of theNestedScrollView
to *1000dp.android:minHeight="1000dp"
Layout:
<android.support.v4.widget.NestedScrollView
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!--to trigger scroll behavior-->
<LinearLayout android:minHeight="1000dp"/>
</android.support.v4.widget.NestedScrollView>
*SupportDesignDemos example here: https://github.com/android/platform_development/blob/master/samples/SupportDesignDemos/res/layout/include_appbar_scrollview.xml
The actual answer should be that CoordinatorLayout
doesn't work with ScrollView
, because ScrollView
is not implementing NestedScrollingChild interface. NestedScrollView
is a ScrollView
with NestedScrollingChild
implementation. If you want to learn more about nested scrolling I made a blog post about it.
'programing' 카테고리의 다른 글
Python에서 값 전달 (0) | 2020.12.06 |
---|---|
scss를 css로 변환 (0) | 2020.12.06 |
목록에서 단어의 빈도를 계산하고 빈도별로 정렬 (0) | 2020.12.06 |
Android 암시 적 인 텐트 VS 명시 적 인 텐트 (0) | 2020.12.06 |
iPad Safari-키보드 사라지기 (0) | 2020.12.06 |