についてはSnackbar
、 のように動作しますToast
が、 とは異なりToast
ます。スナックバーは画面の下部に表示され、オプションの単一アクションのテキストが含まれています。指定した時間が経過すると、アニメーションが画面から消えて自動的にタイムアウトします。さらに、ユーザーはタイムアウト前にそれらをスワイプして消すことができます。これは、もう 1 つの軽量なフィードバック メカニズムであるトーストよりもはるかに強力です。
次のようにプログラムで使用できます。
Snackbar snackbar = Snackbar
.make(parentLayout, R.string.snackbar_text, Snackbar.LENGTH_LONG)
.setAction(R.string.snackbar_action, myOnClickListener);
snackbar.setActionTextColor(Color.CYAN);
View snackbarView = snackbar.getView();
snackbarView.setBackgroundColor(Color.YELLOW);//change Snackbar's background color;
TextView textView = (TextView)snackbarView .findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.BLUE);//change Snackbar's text color;
snackbar.show(); // Don’t forget to show!
make()
-のメソッドでビューを使用すると、ビューがSnackbar
その下部に固定されていることを確認しようとすることに注意してください。
さらに、Android Design Support LibraryはAndroid 2.1+ (API 7+)に使用され、ナビゲーション ドロワー ビュー、テキスト編集用のフローティング ラベル、フローティング アクション ボタン、スナックバー、タブなどを備えています。
ナビゲーション ビュー
ナビゲーション ドロワーは、アプリ内のアイデンティティとナビゲーションの重要な焦点になる可能性があり、ここでのデザインの一貫性は、特に初めてのユーザーにとって、アプリの操作のしやすさに大きな違いをもたらす可能性があります。NavigationView
では、ナビゲーション ドロワーに必要なフレームワークと、メニュー リソースを介してナビゲーション アイテムを拡張する機能を提供することで、これを容易にします。
次のように使用できます。
<android.support.v4.widget.DrawerLayout
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"
android:fitsSystemWindows="true">
<!-- your content layout -->
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/drawer"/>
</android.support.v4.widget.DrawerLayout>
引き出しメニューに関しては、次のようになります。
<group android:checkableBehavior="single">
<item
android:id="@+id/navigation_item_1"
android:checked="true"
android:icon="@drawable/ic_android"
android:title="@string/navigation_item_1"/>
<item
android:id="@+id/navigation_item_2"
android:icon="@drawable/ic_android"
android:title="@string/navigation_item_2"/>
</group>
また:
<item
android:id="@+id/navigation_subheader"
android:title="@string/navigation_subheader">
<menu>
<item
android:id="@+id/navigation_sub_item_1"
android:icon="@drawable/ic_android"
android:title="@string/navigation_sub_item_1"/>
<item
android:id="@+id/navigation_sub_item_2"
android:icon="@drawable/ic_android"
android:title="@string/navigation_sub_item_2"/>
</menu>
</item>
setNavigationItemSelectedListener() を使用して OnNavigationItemSelectedListener を設定することにより、選択したアイテムのコールバックを取得します。これにより、クリックされた MenuItem が提供され、選択イベントの処理、チェック済みステータスの変更、新しいコンテンツのロード、プログラムによるドロワーのクローズ、または必要なその他のアクションが可能になります。
テキスト編集用のフローティング ラベル
謙虚な人でも、EditText
マテリアル デザインには改善の余地があります。をEditText
単独で使用すると、最初の文字が入力された後にヒント テキストが非表示になりますが、 でラップできるようになりましたTextInputLayout
。これにより、ヒント テキストが の上のフローティング ラベルEditText
になり、ユーザーが入力内容のコンテキストを失うことがなくなります。ヒントを表示するだけでなく、EditText
を呼び出して の下にエラー メッセージを表示することもできますsetError()
。
フローティング アクション ボタン
フローティング アクション ボタンは、インターフェイスの主要なアクションを示す丸いボタンです。Design ライブラリは、テーマFloatingActionButton
の を使用してデフォルトで色付けされた、単一の一貫した実装を提供します。colorAccent
FloatingActionButton
extendsとして、または内に表示されるアイコンを制御するなどの方法のいずれかをImageView
使用します。android:src
setImageDrawable()
FloatingActionButton
タブ
トップ レベルのナビゲーション パターンは、コンテンツのさまざまなグループを整理するために一般的に使用されます。Design ライブラリTabLayout
は、ビューの幅がすべてのタブ間で均等に分割される固定タブと、タブが均一なサイズではなく、水平方向にスクロールできるスクロール可能なタブの両方を実装しています。
タブはプログラムで追加できます。
TabLayout tabLayout = ...;
tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
タブ間の水平ページングに を使用する場合はViewPager
、 から直接タブを作成し、 をPagerAdapter’s
getPageTitle()
使用して 2 つを接続できますsetupWithViewPager()
。これにより、タブ選択イベントViewPager
によって が更新され、ページ変更によって選択されたタブが更新されます。
CoordinatorLayout とアプリ バー
デザイン ライブラリはCoordinatorLayout
、子ビュー間のタッチ イベントに対する追加レベルの制御を提供するレイアウトである を導入します。これは、デザイン ライブラリの多くのコンポーネントが利用するものです。AppBarLayout を使用してみると、ScrollingViewBehaviorでマークされた兄弟ビューのスクロール イベントに、自分Toolbar
のビューと他のビュー (によって提供されるタブなど) が反応できるようになります。TabLayout
したがって、次のようなレイアウトを作成できます。
<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.TabLayout
...
app:layout_scrollFlags="scroll|enterAlways">
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
これで、ユーザーが をスクロールするRecyclerView
と、AppBarLayout
は子のスクロール フラグを使用してこれらのイベントに応答し、子の開始 (画面上でのスクロール) および終了 (画面外へのスクロール) 方法を制御できます。
デザイン ライブラリ、AppCompat、およびすべての Android サポート ライブラリは、すべてをゼロから構築することなく、モダンで見栄えの良い Android アプリを構築するために必要なビルディング ブロックを提供する重要なツールです。