かっこいいToolbarを作ろう
スクロールによってToolbarの折りたたみができるCollapsingtoolbarlayoutがあります。
見た目かっこよくなるので実装してみましょう。
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbarlayout"
android:layout_width="match_parent"
android:layout_height="200dp"
android:fitsSystemWindows="true"
>
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsingtoolbarlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="?attr/actionBarSize"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:title="title"
/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
レイアウトはこんな感じで・・・Run!
おお、動く動くw
これで超イカすアプリを作るのだ!
でも世の中そんなにうまくいかない
あれ・・・でもなんかおかしいぞ・・・?
なんで最後のリストが見えないんだ!
よく見たらToolbarの大きさぐらいが見えない!
レイアウトに問題ないよな・・・?
そして3時間後
あ、もうだめ。いやだ。疲れた。なんだよこれ・・・
でも世の中そんなに辛くない
頭を冷やして調べたところ、 CollapsingToolbarLayout
のminHeightをToolBar
の大きさを指定すれば?というものを発見。すぐ試してみましょう。
activity_main.xml
// ...
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsingtoolbarlayout"
android:minHeight="?attr/actionBarSize"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:title="title"/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
// ...
み え る !
めでたしめでたし