Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Cómo usar la biblioteca de IU de Wear

Las bibliotecas de compatibilidad de Android habilitan interfaces de usuario coherentes y optimizadas en todas las apps. La biblioteca de compatibilidad de Android incluye la biblioteca de la IU de Wear, que contiene muchos de los componentes de IU preferidos para las apps de Wear OS.

La biblioteca de 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 IU de Wear.

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

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

    dependencies {
        ...
        compile 'com.android.support:wear:27.0.0'
    }
    

Si es necesario, incluye una dependencia en la biblioteca de compatibilidad con dispositivos wearables (consulta Cómo crear o actualizar un proyecto). También consulta Cómo agregar bibliotecas de compatibilidad.

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

Cuando uses una clase de la biblioteca de IU de Wear, impórtala desde el paquete android.support.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 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 IU de Wear, podrías especificar lo siguiente en un archivo de diseño:

    <android.support.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." />
    </android.support.wear.widget.SwipeDismissFrameLayout>
    

Ejemplo de cómo usar una clase de biblioteca de 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 android.support.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 android.support.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 utiliza 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 android.support.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 android.support.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 IU de Wear contiene componentes para paneles laterales de acción y navegación.

Para 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 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 AnimaciónSet
CurvedChildLayoutManager WearableLinearLayoutManager
PredeterminadoOffsettingHelper WearableLinearLayoutManager
DelayedConfirmationView CircularProgressLayout
DismissOverlayView No aplica; ya no se recomienda la pulsación prolongada para descartar una aplicación en actividades inmersivas
DotsPageIndicator No aplica; 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 aplica; 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