web-dev-qa-db-ja.com

Android L-SwipeRefreshLayoutカラースキームのマテリアルデザイン

私は最新のプロジェクトにマテリアルテーマの実装を開始し、新しいLバージョンの発売に備えています。

マテリアルデザインガイドラインを読んで、これを見つけました。

Iカラーアプリケーション

パレットを選択してください

プライマリパレットで3つの色相を選択し、セカンダリパレットで1つのアクセント色を選択して、色の選択を制限します。アクセントカラーにはフォールバックオプションが必要な場合と必要でない場合があります

多かれ少なかれ、アクセント色を含め、アプリにこれらの色相を実装する方法を説明していますが、SwipeRefreshLayout進行状況バーでアプリのメイン色を使用すると、正しくないと感じます。

App example SwipeRefreshLayout Material design

アクセント色とAndroid:colorPrimary

これについて何か考えはありますか?私が見逃した材料設計ガイドラインにプログレスバーを実装することについての説明はありますか?

前もって感謝します

45
axierjhtjz

材料設計仕様が更新され、 スワイプしてパターンを更新 の新しいガイドラインが追加されました。

サポートライブラリのリビジョン21の時点で、SwipeRefreshLayoutに円形インジケータが表示されるようになりました。
下にスワイプを開始すると、インジケーターに矢印が表示されます(更新を示唆します)。放すと矢印がなくなり、回転し始めます。

SwipeRefreshLayout

これで、カラースキームを設定でき、プログレスバーが色の間を循環します。

それでは、どの色を使用する必要がありますか?

Google I/Oを見てみましょう ソースコード

mSwipeRefreshLayout.setColorSchemeResources(
                R.color.refresh_progress_1,
                R.color.refresh_progress_2,
                R.color.refresh_progress_3);

そして、ここに colors

<color name="refresh_progress_1">@color/theme_accent_2</color>
<color name="refresh_progress_2">@color/theme_accent_1</color>
<color name="refresh_progress_3">@color/theme_primary</color>

はい、それは原色とアクセント色の混合です。

148
Benito Bertoli

与えられた解決策は私にはうまくいきませんでした。

単純に拡張し、代わりにこれを使用しました。

class SwipeToRefreshLayout(context: Context, attrs: AttributeSet): SwipeRefreshLayout(context, attrs)  {

var listener: OnRefreshListener? = null

fun setRefreshing(refreshing: Boolean, fireCallback: Boolean) {
    super.setRefreshing(refreshing)
    listener?.onRefresh()
}

override fun setOnRefreshListener(listener: OnRefreshListener?) {
    super.setOnRefreshListener(listener)
    this.listener = listener
}
}

誰かがそれが役に立つと思うことを願っています。

0
Amit Bhandari