Ir al contenido

Más visitados

Visitados recientemente

navigation

Creating Lists on Wear

Lists let users select an item from a set of choices easily on Wear OS devices.

The Wearable UI Library includes the WearableRecyclerView class, which is a RecyclerView implementation for creating lists optimized for wearable devices. You can use this interface in your wearable app by creating a new WearableRecyclerView container.

Refer to the following related resources:

You should decide whether to use a WearableRecyclerView, based on the kind of user experience you want to provide. We recommend using the WearableRecyclerView for a long list of simple items, such as an application launcher, or a list contacts. Each item might have a short string and an associated icon. Alternatively, each item might have only a string or an icon. We do not recommend using a WearableRecyclerView for very short or complex lists. In that case use the RecyclerView or a ListView from the regular Android support library.

By extending the existing RecyclerView class, WearableRecyclerView APIs display a vertically scrollable list of items in a straight list by default. You can use the WearableRecyclerView APIs to opt-in for a curved layout and a circular scrolling gesture in your wearable apps.

Figure 1. Default list view on Wear OS.

This lesson shows you how to use the WearableRecyclerView class to create lists in your Wear OS apps. The document also describes how to opt-in for a curved layout for your scrollable items, enable circular scrolling gesture, and customize the appearance of the children while scrolling.

Adding WearableRecyclerView to an Activity using XML

The following layout (as inserted into, for example, res/layout/activity_main.xml) adds a WearableRecyclerView to an activity, so the list is displayed properly on both round and square devices:

<android.support.wear.widget.WearableRecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/recycler_launcher_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />

The following shows the WearableRecyclerView as it could be applied to an activity:

import android.os.Bundle;
import android.app.Activity;
import android.support.wear.widget.WearableRecyclerView

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    ...
}

Note: The WearableRecyclerView class replaces a similar, deprecated class in the Wearable Support Library.

Creating a Curved Layout

To create a curved layout for scrollable items in your wearable app:

// To align the edge children (first and last) with the center of the screen
mWearableRecyclerView.setEdgeItemsCenteringEnabled(true);
...

mWearableRecyclerView.setLayoutManager(
                new WearableLinearLayoutManager(this));

If your app has specific requirements to customize the appearance of the children while scrolling (for example, scale the icons and text while the items scroll away from the center), extend the WearableLinearLayoutManager.LayoutCallback class and override the onLayoutFinished method.

The following code snippet shows an example of customizing the scrolling of items to scale farther away from the center by extending the WearableLinearLayoutManager.LayoutCallback class:

public class CustomScrollingLayoutCallback extends WearableLinearLayoutManager.LayoutCallback {
    /** How much should we scale the icon at most. */
    private static final float MAX_ICON_PROGRESS = 0.65f;

    private float mProgressToCenter;

    @Override
    public void onLayoutFinished(View child, RecyclerView parent) {

        // Figure out % progress from top to bottom
        float centerOffset = ((float) child.getHeight() / 2.0f) / (float) parent.getHeight();
        float yRelativeToCenterOffset = (child.getY() / parent.getHeight()) + centerOffset;

        // Normalize for center
        mProgressToCenter = Math.abs(0.5f - yRelativeToCenterOffset);
        // Adjust to the maximum scale
        mProgressToCenter = Math.min(mProgressToCenter, MAX_ICON_PROGRESS);

        child.setScaleX(1 - mProgressToCenter);
        child.setScaleY(1 - mProgressToCenter);
    }
}

CustomScrollingLayoutCallback customScrollingLayoutCallback =
                new CustomScrollingLayoutCallback();
mWearableRecyclerView.setLayoutManager(
                new WearableLinearLayoutManager(this, customScrollingLayoutCallback));

Adding a Circular Scrolling Gesture

By default, circular scrolling is disabled in the WearableRecyclerView. If you want to enable a circular scrolling gesture in your child view, use the WearableRecyclerView’s setCircularScrollingGestureEnabled() method. You can also customize the circular scrolling gesture by defining one or both of the following:

The following code snippet shows how to set these methods:

setCircularScrollingGestureEnabled(true);
setBezelFraction(0.5f);
setScrollDegreesPerScreen(90);
Este sitio usa cookies para almacenar tus preferencias específicas de idioma y visualización.

Obtén las noticias y sugerencias más recientes para programadores de Android, que te ayudarán a lograr el éxito en Google Play.

* Campos obligatorios

¡Muy bien!

Sigue a Google Developers en WeChat

¿Deseas explorar este sitio en ?

Solicitaste ver la página en , pero tu preferencia de idioma actual para este sitio es .

¿Quieres cambiar tu preferencia de idioma y explorar este sitio en ? Si deseas cambiarla en otro momento, usa el menú de idioma que se encuentra en la parte inferior de cada página.

Esta clase requiere un nivel de API igual o superior a

El documento está oculto porque el nivel de API que seleccionaste para la documentación es . Puedes cambiar el nivel de API de la documentación con el selector que está sobre el menú de navegación izquierdo.

Para obtener más información sobre cómo especificar el nivel de API que requiere tu app, consulta el artículo sobre Compatibilidad con diferentes versiones de la plataforma.

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)