ListView
とActionBar
を含むGUIを作成する必要があります。これらは、下にスクロールすると上にスクロールすると非表示になり、再表示する必要があります。
次のガイドは役に立たなかった。
次のようなものが必要です。
この動作を使用してリストを取得する場合は、次のことを行う必要があります。
compile 'com.Android.support:design:22.2.0'
_を使用して設計サポートライブラリを追加しますapp:layout_scrollFlags="scroll|enterAlways"
_を定義する必要があるツールバーでCoordinatorLayout
を使用しますRecyclerView
の代わりにListView
を使用します。 hereListView
とGridView
は、API> 21でのみCoordinatorLayout
で予期される動作をします。この場合、setNestedScrollingEnabled(true);
を使用する必要があります公式ブログ投稿 はこのケースを示しています:
_<Android.support.design.widget.CoordinatorLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<! -- Your Scrollable View -->
<Android.support.v7.widget.RecyclerView
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.support.v7.widget.Toolbar
...
app:layout_scrollFlags="scroll|enterAlways">
</Android.support.design.widget.AppBarLayout>
</Android.support.design.widget.CoordinatorLayout>
_
Googleの新しいサポートデザインライブラリを使用することをお勧めします。
依存関係にそれを含めます:
compile 'com.Android.support:design:22.2.0'
そして、AppBarLayout
をNestedScrollView
と一緒に使用します。
Toolbar
を定義するapp:layout_scrollFlags="scroll|enterAlways"
は、スクロールすると消え、上にスクロールするとすぐに戻ることを示します(つまり、上にスクロールする必要はありません)。
<Android.support.design.widget.AppBarLayout
Android:id="@+id/appbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<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/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways" />
</Android.support.design.widget.AppBarLayout>
<Android.support.v4.widget.NestedScrollView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_gravity="fill_vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<FrameLayout
Android:id="@+id/container"
Android:layout_width="match_parent"
Android:layout_height="match_parent"/>
</Android.support.v4.widget.NestedScrollView>
[CoordinatorLayout]: https://developer.Android.com/reference/Android/support/design/widget/CoordinatorLayout.html を使用すると、co -子ビュー間のオリダネーション。別のビューで観察された動作(ListView-> scroll)があるときに、あるビューでact(AppBarLayout-> scrolling)のようになります。
ListviewをnestedScrollingEnabledにし、API 21で機能します。
Android:nestedScrollingEnabled="true"
レイアウトの動作をアプリバーのスクロールにトリガーします。
Android:nestedScrollingEnabled="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
表示/非表示/スクロール、AppBarLayout内への配置、およびスクロールフラグの有効化に必要なレイアウト(ToolBar/TabLayout/any)。
app:layout_scrollFlags="scroll|enterAlways"
このタスクにはCoordinatorLayout
を使用する必要があります。これは、サポートデザインライブラリの一部です。 ここ 、CoordinatorLayoutおよびアプリバーセクションで、例を見つけることができます