新しいコース「Android Developer」の開始日が近づいていますが、何も残っておらず、リスナーとなる可能性のある人を含め、誰もが共有する興味深い資料はほとんどありません。
行こう
最近、Androidサポートライブラリの28番目のバージョンが発表されました。 現在のアルファ版では、一連の興味深い新しいコンポーネントにアクセスできます。 この記事では、マテリアルビューのコンポーネントとしてサポートライブラリに追加された追加機能を確認します。
素材ボタン
MaterialButtonは、アプリケーションのユーザーインターフェイスでマテリアルスタイルのボタンを表示するために使用できるウィジェットです。 このクラスは、おそらくプロジェクトで既に使用しているAppCompatButtonクラスを継承しますが、違いは何ですか? デフォルトでは、このボタンは、スタイルフラグを使用して自分で設定する必要なく、既にマテリアルの外観で装飾されています。 MaterialButtonクラスをそのまま使用できます。これは、必要なマテリアルの外観が既にあるためです-より便利なクラスと考えてください。
次のように、このボタンをレイアウトファイルに追加できます。
<android.support.design.button.MaterialButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="MATERIAL BUTTON" android:textSize="18sp" app:icon="@drawable/ic_android_white_24dp" />
デフォルトでは、このクラスはテーマのアクセントカラーを使用してボタンの背景を塗りつぶし、ボタン上のテキストを白で塗りつぶします。 ボタンが塗りつぶされない場合、アクセントの色が透明な背景とともにボタン上のテキストの色に使用されます。
ボタンに追加のスタイルを追加する場合は、 MaterialButtonスタイル属性セットを使用してこれを行うことができます。
- app:icon-ボタンの先頭に表示される画像を決定するために使用されます。
- app:iconTint -app:icon属性で定義されたアイコンの色を変更するために使用されます
- app:iconTintMode-アイコンの色を変更するために使用されるモードを定義します
- app:iconPadding -app:icon属性で定義されたアイコンに適用されるインデント
- app:additionalPaddingLeftForIcon -app:icon属性で定義されたアイコンの左側に適用されるインデントを定義します
- app:additionalPaddingRightForIcon -app:icon属性で定義されたアイコンの右側に適用されるインデントを定義します
- app:rippleColor-ボタンの波及効果の色
- app:backgroundTint-ボタンの背景に色相を適用するために使用されます。 ボタンの背景色を変更する場合は、ボタンのスタイルに違反しないように、背景の代わりにこの属性を使用します
- app:backgroundTintMode-背景色相の変更に使用されるモードを決定するために使用されます
- アプリ:strokeColor-ボタンのストロークの色
- アプリ:strokeWidth-ボタンのストローク幅
- app:cornerRadius-ボタンコーナーのスムージング半径を決定するために使用
チップ
チップコンポーネントを使用すると、レイアウトにチップを表示できます。 実際、チップは丸みを帯びた背景上のテキストです。 その目的は、ユーザーに何らかの形式のテキストセットを表示することであり、これは選択される場合とされない場合があります。 たとえば、チップを使用して、アプリケーションの現在のコンテキストに基づいてユーザーに選択可能なオファーのリストを表示できます。
たとえば、
app:chipText
属性を使用してチップをレイアウトに追加し、チップに表示するテキストを設定できます。
<android.support.design.chip.Chip android:id="@+id/some_chip" android:layout_width="wrap_content" android:layout_height="wrap_content" app:chipText="This is a chip" />
チップをさらに様式化するために使用できる他の属性のセットもあります。
- app:checkable-チップを選択済み/未選択としてマークできるかどうかを宣言するために使用されます。 無効にすると、チップの選択はボタンの場合と同じように動作します。
- app:chipIcon-チップ内のアイコンを表示するために使用
- app:closeIcon-チップに削除アイコンを表示するために使用
チップインスタンスにリスナーをハングさせることもできます。 これらは、ユーザーインタラクションの追跡に役立ちます。 チップを選択できる場合は、おそらく、この状態がいつ変更されたかを調べる必要があります。
setOnCheckedChangeListener
リスナーを使用してこれを行うことができます。
some_chip.setOnCheckedChangeListener { button, checked -> }
削除アイコンとの相互作用を聞きたい場合も同様です。 これを行うには、
setOnCloseIconClickListener
関数を使用して削除イベントを登録できます。
some_chip.setOnCloseIconClickListener { }
チップグループ
ユーザーに一連のチップを表示する場合、ビュー内でそれらが正しくグループ化されていることを確認する必要があります。 これを行うには、 ChipGroupビューコンポーネントを使用できます 。
ChipGroupを使用する場合は、 ChipViewをChipGroupの親コンポーネントでラップするだけです。
<android.support.design.chip.ChipGroup android:layout_width="wrap_content" android:layout_height="wrap_content"> <android.support.design.chip.Chip android:layout_width="wrap_content" android:layout_height="wrap_content" app:chipText="This" /> <android.support.design.chip.Chip android:layout_width="wrap_content" android:layout_height="wrap_content" app:chipText="is" /> // ... </android.support.design.chip.ChipGroup>
デフォルトでは、 ChipViewは互いにわずかに固定されているように見える場合があります。 その場合、次のChipGroup属性を使用して、子ビューに間隔を追加できます。
- app:chipSpacing-水平および垂直の両方に距離を追加します
- アプリ:chipSpacingHorizontal-水平距離を追加します
- アプリ:chipSpacingVertical-垂直距離を追加します
app:singleLine
を使用して、ChipGroupコンテナー内の単一行に表示される子チップビューを宣言することもでき
app:singleLine
。
この場合、ユーザーが表示されたチップをスクロールできるように、ChipGroupを
HorizontalScrollView
などのスクロール可能なビューでラップする必要があります。
<HorizontalScrollView android:layout_width="wrap_content" android:layout_height="wrap_content"> <android.support.design.chip.ChipGroup android:layout_width="wrap_content" android:layout_height="wrap_content" app:singleLine="true"> <android.support.design.chip.Chip android:layout_width="wrap_content" android:layout_height="wrap_content" app:chipText="Some chip" /> // ... </android.support.design.chip.ChipGroup> </HorizontalScrollView>
マテリアルカードビュー
私たちのアプリケーションでは、おそらくある時点で
CardView
コンポーネントをすでに使用して
CardView
ます。 サポートライブラリには
MaterialCardView
というコンポーネントがあり、マテリアルデザインとして定型化されたすぐに使用可能な実装を提供します。
CardViewは、次のようにレイアウトに追加できます。
<android.support.design.card.MaterialCardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp"> ... child views ... </android.support.design.card.MaterialCardView>
さらに、2つの属性を使用してCardViewをスタイル設定できます。
- app:strokeColor-ストロークに使用される色(ストロークを表示するように設定する必要があります)
- アプリ:strokeWidth-ストローク幅
これらの2つの属性とともに、
app:cardBackgroundColor
などの最初に使用可能な属性を使用してCardViewをスタイルすることもできます。
下のアプリバー
BottomAppBar
は、レイアウトの下部にツールバーのようなコンポーネントを表示できる新しいコンポーネントです。 これにより、標準のツールバーを使用するよりも簡単にコンポーネントを操作できるように、コンポーネントをユーザーに表示できます。
BottomAppBar
ように、レイアウトファイルに
BottomAppBar
を追加できます。
<android.support.design.bottomappbar.BottomAppBar android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" app:backgroundTint="@color/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
BottomAppBarには、画面に表示されるメニューが割り当てられている必要があるようです。 これは、次のようにプログラムで実行できます。
bottom_app_bar.replaceMenu(R.menu.main)
BottomAppBarのスタイリングに関しては、使用できる属性がいくつかあります。
- app:fabAttached -FABがBottomAppBarにアタッチされたかどうかを示します。 BottomAppBar識別子を使用して接続するFABコンポーネントでapp:layout_anchorを使用してFABを有効にできます。 FABがアタッチされている場合、BottomAppBarに挿入されます。そうでない場合、FABはBottomAppBarの上に残ります。
- app:fabAlignmentMode - BottomAppBarにアタッチされたFAB位置を通知します。 どちらでも終わりです:
または中央:
- app:fabCradleVerticalOffset-接続されたFABに使用される垂直オフセットを宣言します。 デフォルトは0dpです
dp値を設定すると、FABが垂直方向に上に移動できます。
- app:backgroundTint-ビューの背景の色相を変更するために使用されます。 ビューで背景色を設定する場合は、
android:background
属性を使用する必要があります。 これにより、プレゼンテーションの安定性が確保されます。
おわりに
私の意見では、これらはサポートライブラリへのエレガントな追加です。 マテリアルスタイルコンポーネントをすぐに使用できることを楽しみにしています。また、BottomAppBarを使用できる場合もあります。 サポートライブラリが安定するまでには時間がかかると思います。 いつものように、これらの新しいコンポーネントについてのあなたの考えやコメントを聞きたいです!
終わり
あなたのコメントや質問を待っています。あなたがここを出ることができますか、 開いた日にバーバラに行くことができます。