Cómo usar la biblioteca de la IU de Wear

Android Jetpack admite interfaces de usuario coherentes y optimizadas en todas las apps. Android Jetpack incluye la biblioteca de la UI de Wear, que contiene muchos de los componentes de IU preferidos para tus apps de Wear OS.

La biblioteca de la IU de Wear incluye las siguientes clases, entre otras. Algunas tienen nombres similares a las clases obsoletas relacionadas que se incluyen en la Biblioteca de compatibilidad de dispositivos wearables y ofrecen varios beneficios con respecto a ellas:

También consulta Paneles laterales de acción y navegación en la biblioteca de la IU de Wear.

Cómo agregar una dependencia en la biblioteca de la IU de Wear

Para usar la biblioteca de la IU de Wear, agrega la siguiente dependencia en el archivo build.gradle de tu módulo de Wear:

    dependencies {
        ...
        compile 'androidx.wear:wear:1.0.0'
    }
    

Cómo importar clases desde el paquete de la biblioteca de la IU de Wear

Cuando uses una clase de la biblioteca de la IU de Wear, importa esa clase desde el paquete androidx.wear.widget. Consulta el Ejemplo de cómo usar una clase de biblioteca.

Cómo utilizar los nombres correctos de los elementos en los archivos de diseño

En los archivos de diseño, usa nombres completos que correspondan a la biblioteca de la IU de Wear (en lugar de a la biblioteca de compatibilidad con dispositivos wearable).

Por ejemplo, para usar la clase SwipeDismissFrameLayout de la biblioteca de la IU de Wear, podrías especificar lo siguiente en un archivo de diseño:

    <androidx.wear.widget.SwipeDismissFrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/swipe_dismiss_root" >

        <TextView
            android:id="@+id/test_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="Swipe the screen to dismiss me." />
    </androidx.wear.widget.SwipeDismissFrameLayout>
    

Ejemplo de cómo usar una clase de biblioteca de la IU de Wear

Las clases en la biblioteca de IU de Wear tienen la misma funcionalidad o una similar a la de la biblioteca de compatibilidad con dispositivos wearables. Algunos nombres de clase, método y atributo se actualizan para mejorar la coherencia con la biblioteca de compatibilidad de Android.

Por ejemplo, una actividad que utiliza la clase WearableRecyclerView de la Biblioteca de compatibilidad con dispositivos wearables podría incluir el siguiente código:

Kotlin

    import androidx.wear.widget.WearableRecyclerView
    ...
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.wearable_recycler_view_basic)
        findViewById<WearableRecyclerView>(R.id.wrv).apply {
            layoutManager = ChildLayoutManager()
            adapter = TestAdapter()
        }
    }
    

Java

    import androidx.wearable.view.WearableRecyclerView;
    ...
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.wearable_recycler_view_basic);
        WearableRecyclerView wrv = findViewById(R.id.wrv);
        wrv.setLayoutManager(new ChildLayoutManager());
        wrv.setAdapter(new TestAdapter());
    }
    

De manera similar, una actividad que usa la clase WearableRecyclerView de la biblioteca de la IU de Wear podría incluir el siguiente código. Las diferencias con el código anterior están en negrita:

Kotlin

    import androidx.wear.widget.WearableRecyclerView
    ...
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.wearable_recycler_view_basic)
        findViewById<WearableRecyclerView>(R.id.wrv).apply {
            layoutManager = WearableLinearLayoutManager(this@MainActivity)
            adapter = TestAdapter()
        }
    }
    

Java

    import androidx.wear.widget.WearableRecyclerView;
    ...
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.wearable_recycler_view_basic);
        WearableRecyclerView wrv = findViewById(R.id.wrv);
        wrv.setLayoutManager(new WearableLinearLayoutManager(this));
        wrv.setAdapter(new TestAdapter());
    }
    

Paneles laterales de acción y navegación en la biblioteca de IU de Wear

La biblioteca de la IU de Wear contiene componentes para paneles laterales de acción y navegación.

Si deseas obtener información adicional, consulta Navegación y acciones para Wear.

Reemplazos para clases obsoletas

La tabla que se encuentra a continuación contiene reemplazos para las clases obsoletas de la Biblioteca de compatibilidad con dispositivos wearables en la biblioteca de la IU de Wear y en otros lugares.

Clase obsoleta Información de reemplazo
ActionChooserView AlertDialog
ActionLabel Usa WearableActionDrawerView para la navegación y ConfirmationOverlay para las acciones de confirmación.
ActionPage Usa WearableActionDrawerView para la navegación y ConfirmationOverlay para las acciones de confirmación.
BoxInsetLayout BoxInsetLayout
BoxInsetLayout.LayoutParams BoxInsetLayout.LayoutParams
CardFragment Usa SnapHelper y un RecyclerView.
CardFrame Usa SnapHelper y un RecyclerView.
CardScrollView Usa SnapHelper y un RecyclerView.
CircledImageView RoundedDrawable
CircularButton Consulta Componentes de la biblioteca de material design.
CrossfadeDrawable AnimationSet
CurvedChildLayoutManager WearableLinearLayoutManager
DefaultOffsettingHelper WearableLinearLayoutManager
DelayedConfirmationView CircularProgressLayout
DismissOverlayView No aplicable; ya no se recomienda la pulsación prolongada para descartar una app en actividades inmersivas
DotsPageIndicator No aplicable; ya no se recomienda el desplazamiento horizontal para las apps.
FragmentGridPagerAdapter Usa PageSnapHelper y un RecyclerView.
GridPagerAdapter Usa SnapHelper y un RecyclerView.
GridViewPager Usa SnapHelper y un RecyclerView.
GridViewPager.LayoutParams No aplicable; los modelos espaciales bidireccionales ya no se recomiendan para las apps (si estás implementando un patrón de paginación vertical, considera usar SnapHelper y RecyclerView).
ProgressSpinner ProgressBar
SwipeDismissFrameLayout SwipeDismissFrameLayout
SwipeDismissFrameLayout.Callback SwipeDismissFrameLayout.Callback
WatchViewStub Consulta Cómo proveer recursos
WearableFrameLayout Consulta Cómo proveer recursos
WearableFrameLayout.LayoutParams Consulta Cómo proveer recursos
WearableListView WearableRecyclerView
WearableListView.Adapter Para centrar y ajustar los elementos de la lista, considera usar el WearableRecyclerView, compatible con un SnapHelper o un LinearSnapHelper. Para escalar y modificar los elementos de la lista según su ubicación en la pantalla, considera usar un WearableLinearLayoutManager o CurvingLayoutCallback.
WearableListView.GenericAdapter Para centrar y ajustar los elementos de la lista, considera usar el WearableRecyclerView, compatible con un SnapHelper o un LinearSnapHelper. Para escalar y modificar los elementos de la lista según su ubicación en la pantalla, considera usar un WearableLinearLayoutManager o CurvingLayoutCallback.
WearableListView.ViewHolder Para centrar y ajustar los elementos de la lista, considera usar el WearableRecyclerView, compatible con un SnapHelper o un LinearSnapHelper. Para escalar y modificar los elementos de la lista según su ubicación en la pantalla, considera usar un WearableLinearLayoutManager o CurvingLayoutCallback.
WearableRecyclerView WearableRecyclerView
WearableRecyclerView.ChildLayoutManager WearableLinearLayoutManager
WearableRecyclerView.OffsettingHelper WearableLinearLayoutManager.LayoutCallback
WearableActionDrawer WearableActionDrawerView
WearableDrawerLayout WearableDrawerLayout
WearableDrawerLayout.DrawerStateCallback WearableDrawerLayout.DrawerStateCallback
WearableDrawerView WearableDrawerView
WearableNavigationDrawer WearableNavigationDrawerView
WearableNavigationDrawer.WearableNavigationDrawerAdapter WearableNavigationDrawerView.WearableNavigationDrawerAdapter