Wear UI 라이브러리 사용

Android Jetpack을 사용하면 앱 전체에 일관되고 최적화된 사용자 인터페이스를 구현할 수 있습니다. Android Jetpack에는 Wear UI 라이브러리가 있으며, 여기에는 Wear OS 앱용 기본 UI 구성요소가 다수 포함되어 있습니다.

Wear UI 라이브러리에는 다음 클래스가 포함되어 있으나 이에 국한되지는 않습니다. 일부 클래스는 웨어러블 지원 라이브러리에 있는 관련된 지원 중단 클래스와 이름이 유사하며 이들에 비해 몇 가지 이점을 제공합니다.

Wear UI 라이브러리의 작업 및 탐색 창도 참조하세요.

Wear UI 라이브러리에 종속성 추가

Wear UI 라이브러리를 사용하려면 Wear 모듈의 build.gradle 파일에 다음 종속 항목을 추가합니다.

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

Wear UI 라이브러리 패키지에서 클래스 가져오기

Wear UI 라이브러리의 클래스를 사용할 경우 androidx.wear.widget 패키지에서 그러한 클래스를 가져옵니다. 라이브러리 클래스 사용 예제를 참조하세요.

레이아웃 파일에서 올바른 요소 이름 사용

레이아웃 파일에서 Wear UI 라이브러리(웨어러블 지원 라이브러리가 아님)에 해당하는 정규화된 이름을 사용합니다.

예를 들어 Wear UI 라이브러리의 SwipeDismissFrameLayout 클래스를 사용하려면 레이아웃 파일에서 다음을 지정하면 됩니다.

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

Wear UI 라이브러리 클래스 사용 예제

Wear UI 라이브러리의 클래스는 웨어러블 지원 라이브러리의 클래스와 같거나 유사한 기능이 있습니다. Android 지원 라이브러리와의 일관성을 높이기 위해 일부 클래스, 메서드 및 속성 이름이 업데이트되었습니다.

예를 들어 웨어러블 지원 라이브러리의 WearableRecyclerView 클래스를 사용하는 활동에는 다음 코드가 포함될 수 있습니다.

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

자바

    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());
    }
    

마찬가지로 Wear UI 라이브러리의 WearableRecyclerView 클래스를 사용하는 활동에는 다음 코드가 포함될 수 있습니다. 위의 코드와 다른 부분은 굵게 표시되어 있습니다.

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

자바

    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());
    }
    

Wear UI 라이브러리의 작업 및 탐색 창

Wear UI 라이브러리에는 작업 및 탐색 창용 구성요소가 있습니다.

자세한 내용은 Wear 탐색 및 작업을 참조하세요.

지원 중단된 클래스의 대체

다음 표에는 웨어러블 지원 라이브러리의 지원 중단된 클래스를 대체하는 Wear UI 라이브러리 또는 다른 라이브러리의 클래스가 나와 있습니다.

사용 중단된 클래스 대체 정보
ActionChooserView AlertDialog
ActionLabel 탐색에는 WearableActionDrawerView, 확인 작업에는 ConfirmationOverlay 사용
ActionPage 탐색에는 WearableActionDrawerView, 확인 작업에는 ConfirmationOverlay 사용
BoxInsetLayout BoxInsetLayout
BoxInsetLayout.LayoutParams BoxInsetLayout.LayoutParams
CardFragment SnapHelperRecyclerView 사용
CardFrame SnapHelperRecyclerView 사용
CardScrollView SnapHelperRecyclerView 사용
CircledImageView RoundedDrawable
CircularButton 머티리얼 디자인 라이브러리 구성요소 참조
CrossfadeDrawable AnimationSet
CurvedChildLayoutManager WearableLinearLayoutManager
DefaultOffsettingHelper WearableLinearLayoutManager
DelayedConfirmationView CircularProgressLayout
DismissOverlayView 해당 없음. 몰입형 활동에서는 앱을 닫기 위해 길게 누르는 것이 권장되지 않음
DotsPageIndicator 해당 없음. 가로 스크롤은 앱에 권장되지 않음
FragmentGridPagerAdapter PageSnapHelperRecyclerView 사용
GridPagerAdapter SnapHelperRecyclerView 사용
GridViewPager SnapHelperRecyclerView 사용
GridViewPager.LayoutParams 해당 없음. 양방향 공간 모델은 앱에 권장되지 않음. 세로 페이징 패턴을 구현하는 경우 SnapHelperRecyclerView 사용을 고려하세요.
ProgressSpinner ProgressBar
SwipeDismissFrameLayout SwipeDismissFrameLayout
SwipeDismissFrameLayout.Callback SwipeDismissFrameLayout.Callback
WatchViewStub 리소스 제공 참조
WearableFrameLayout 리소스 제공 참조
WearableFrameLayout.LayoutParams 리소스 제공 참조
WearableListView WearableRecyclerView
WearableListView.Adapter 중앙에 정렬하여 맞추는 목록 항목에는 SnapHelper 또는 LinearSnapHelper에서 지원하는 WearableRecyclerView 사용을 고려하세요. 화면상의 위치에 따라 목록 항목의 크기를 조정하고 수정하려면 WearableLinearLayoutManager 또는 CurvingLayoutCallback 사용을 고려하세요.
WearableListView.GenericAdapter 중앙에 정렬하여 맞추는 목록 항목에는 SnapHelper 또는 LinearSnapHelper에서 지원하는 WearableRecyclerView 사용을 고려하세요. 화면상의 위치에 따라 목록 항목의 크기를 조정하고 수정하려면 WearableLinearLayoutManager 또는 CurvingLayoutCallback 사용을 고려하세요.
WearableListView.ViewHolder 중앙에 정렬하여 맞추는 목록 항목에는 SnapHelper 또는 LinearSnapHelper에서 지원하는 WearableRecyclerView 사용을 고려하세요. 화면상의 위치에 따라 목록 항목의 크기를 조정하고 수정하려면 WearableLinearLayoutManager 또는 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