๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[Android]CollapsingToolbarLayout ํ•˜์œ„ child view ๋‚˜์—ด ์ˆœ์„œ

CollapsingToolbarLayout์˜ ํ•˜์œ„ ์ž๋…€ ๋ทฐ๋“ค์˜ ๋‚˜์—ด ์ˆœ์„œ์˜ ์˜๋ฏธ๋ฅผ ์•Œ์ง€ ๋ชปํ–ˆ๋‹ค.

์˜ˆ์ œ ์ฝ”๋“œ๋“ค์„ ๋ณด๋ฉด CollapsingToolbarLayout ์•ˆ์˜ ๋งจ ๋งˆ์ง€๋ง‰์— Toolbar ์œ„์ ฏ์„ ๋„ฃ๋˜๋ฐ, ๊ทธ ์ด์œ ๋ฅผ ๋”ฑํžˆ ์•Œ ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค.

์ด๋ฒˆ์— ์ž‘์—…ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ์‚ฝ์งˆ์„ ํ•˜๋ฉฐ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.

 

์‹œ์ž‘

์ฒ˜์Œ ์ง„์ž…ํ•˜๋ฉด ๋‚˜์˜ค๋Š” ํ™”๋ฉด. ์ด์ œ ํ™”๋ฉด์„ ์œ„๋กœ ์Šคํฌ๋กคํ•˜๋ฉฐ ๋น„๊ตํ•œ๋‹ค.

 

CollapsingToolbarLayout ์•ˆ์— pin ๊ณ ์ •๋œ Toolbar ์œ„์ ฏ์ด ์ตœ์ƒ๋‹จ์˜ ์ž๋…€๋ทฐ์ผ ๊ฒฝ์šฐ

 

        <androidx.coordinatorlayout.widget.CoordinatorLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <com.google.android.material.appbar.AppBarLayout
                android:id="@+id/appBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:elevation="0dp">

                <com.google.android.material.appbar.CollapsingToolbarLayout
                    android:id="@+id/toolbarLayout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed"
                    app:titleEnabled="false">

					<!--์ตœ์ƒ๋‹จ์— ์œ„์น˜-->
                    <androidx.appcompat.widget.Toolbar
                        android:id="@+id/toolbar"
                        style="@style/ActionBar.Back"
                        android:layout_width="match_parent"
                        app:layout_collapseMode="pin"
                        app:title="์—ฌ๊ธฐ" />

                    <androidx.viewpager2.widget.ViewPager2
                        android:id="@+id/banner"
                        android:layout_marginTop="@dimen/toolbar_height"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:minHeight="230dp"/>

                </com.google.android.material.appbar.CollapsingToolbarLayout>

                <com.google.android.material.tabs.TabLayout
                    android:id="@+id/tabLayout"
                    android:layout_width="match_parent"
                    android:layout_height="45dp" />

            </com.google.android.material.appbar.AppBarLayout>

            <androidx.viewpager2.widget.ViewPager2
                android:id="@+id/fragmentContainer"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:visibility="invisible"
                app:layout_behavior="@string/appbar_scrolling_view_behavior" />

        </androidx.coordinatorlayout.widget.CoordinatorLayout>

 

pin ๋œ ํˆด๋ฐ” ์˜์—ญ๋งŒํผ ๋ทฐํŽ˜์ด์ €2์˜์—ญ์ด ๋ณด์ธ๋‹ค.

 

 

 

CollapsingToolbarLayout ์•ˆ์— pin ๊ณ ์ •๋œ Toolbar ์œ„์ ฏ์ด ์ตœํ•˜๋‹จ์˜ ์ž๋…€๋ทฐ์ผ ๊ฒฝ์šฐ

 

       <androidx.coordinatorlayout.widget.CoordinatorLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <com.google.android.material.appbar.AppBarLayout
                android:id="@+id/appBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:elevation="0dp">

                <com.google.android.material.appbar.CollapsingToolbarLayout
                    android:id="@+id/toolbarLayout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed"
                    app:titleEnabled="false">

                    <androidx.viewpager2.widget.ViewPager2
                        android:id="@+id/banner"
                        android:layout_marginTop="@dimen/toolbar_height"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:minHeight="230dp"/>

                    <!--์ตœํ•˜๋‹จ์— ์œ„์น˜-->
                    <androidx.appcompat.widget.Toolbar
                        android:id="@+id/toolbar"
                        style="@style/ActionBar.Back"
                        app:navigationIcon="@color/transparent"
                        android:layout_width="match_parent"
                        app:layout_collapseMode="pin"
                        app:title="์—ฌ๊ธฐ" />

                </com.google.android.material.appbar.CollapsingToolbarLayout>

                <com.google.android.material.tabs.TabLayout
                    android:id="@+id/tabLayout"
                    android:layout_width="match_parent"
                    android:layout_height="45dp" />

            </com.google.android.material.appbar.AppBarLayout>

            <androidx.viewpager2.widget.ViewPager2
                android:id="@+id/fragmentContainer"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior" />

        </androidx.coordinatorlayout.widget.CoordinatorLayout>

pin๋œ ํˆด๋ฐ” ์˜์—ญ๋งŒํผ ํˆด๋ฐ”๊ฐ€ ๋ณด์ธ๋‹ค.

 


 

CollapsingToolbarLayout์ด FrameLayout๋ฅผ ์ƒ์†๋ฐ›์•„์„œ ๊ทธ๋Ÿฐ๊ฐ€ ๋ด„.

 

public class CollapsingToolbarLayout extends FrameLayout {
...
}