web-dev-qa-db-fra.com

Android L - Conception des matériaux sur le jeu de couleurs SwipeRefreshLayout

Je commence à mettre en œuvre le thème Matériau dans mon dernier projet et à le préparer pour le lancement de la nouvelle version L.

J'ai lu les directives de conception du matériel et je l'ai trouvé.

Application de couleur de l'interface utilisateur

Choisissez votre palette

Limitez votre choix de couleurs en choisissant trois teintes de couleur dans la couleur principale et une couleur d'accent dans la palette secondaire. La couleur d'accent peut nécessiter ou non des options de repli

Plus ou moins, il explique comment implémenter ces teintes sur l'application, y compris la couleur d'accentuation, mais lorsque vous utilisez la couleur principale de mon application avec la barre de progression SwipeRefreshLayout, vous ne vous sentez pas à l'aise.

App example SwipeRefreshLayout Material design

Devrait-il y avoir un mélange entre la couleur d'accent et le Android:colorPrimary?

Des idées à ce sujet? Existe-t-il une explication de la mise en œuvre des barres de progression dans la directive de conception du matériau que j'ai manquée?

Merci d'avance

45
axierjhtjz

La spécification de conception du matériau a été mise à jour avec les nouvelles directives pour le glisser pour actualiser le motif .

À partir de la révision 21 de la bibliothèque de support, SwipeRefreshLayout affiche désormais un indicateur circulaire.
Lorsque vous commencez à glisser, l'indicateur est doté d'une flèche (qui suggère d'actualiser). Lorsque vous le relâchez, il perd la flèche et commence à tourner.

SwipeRefreshLayout

Maintenant, nous pouvons toujours définir un jeu de couleurs et la barre de progression défile entre les couleurs.

Alors, quelles couleurs devrions-nous utiliser?

Jetons un coup d'oeil au Google I/O code source :

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

Et voici les couleurs :

<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>

Alors oui, c'est un mélange entre les couleurs primaires et les couleurs d'accent.

148
Benito Bertoli

La solution donnée ne fonctionnait pas pour moi.

J'ai simplement étendu et utilisé cela à la place.

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
}
}

J'espère que quelqu'un le trouvera utile.

0
Amit Bhandari