Wear OS手表应用开发教程之-顶部导航-WearableNavigationDrawerView

本文目录 点击直达

  • Wear OS手表应用开发系列教程 点击直达
  • 本文标签
  • 前言:
  • 效果展示
  • 使用方法
  • 结语
    • 最后我还有一句话要说
      • 等到风景都看透,也许你会陪我看细水长流

Wear OS手表应用开发系列教程 点击直达

Wear OS手表应用开发教程之-创建应用
Wear OS手表应用开发教程之-创建环形滚动列表-WearableRecyclerView
Wear OS手表应用开发教程之-禁止全屏滑动返回Activity
Wear OS手表应用开发教程之-侧滑隐藏-SwipeDismissFrameLayout
Wear OS手表应用开发教程之-Activity使用微光模式-AmbientModeSupport
Wear OS手表应用开发教程之-顶部导航-WearableNavigationDrawerView
Wear OS手表应用开发教程之-底部导航-WearableActionDrawerView

本文标签

Android Studio | Wear OS | WearableNavigationDrawerView| 顶部导航

前言:

正如Android一样,Wear OS也是谷歌创建的智能操作系统,属于Android的一个分支。假设你有过Android
Application开发经验,那给Wear OS 做应用适配将是一件非常简单的事情

这次咱们来学习如何在手表上使用顶部导航栏WearableNavigationDrawerView,官方中文命名 “多页抽屉式导航栏”,可以使用这个控件控制一些不需要实时显示在主界面上的操作按钮等。先看效果图 ~

效果展示

单页导航-singlePage
Wear OS手表应用开发教程之-顶部导航-WearableNavigationDrawerView_第1张图片

多页导航-multiPage
Wear OS手表应用开发教程之-顶部导航-WearableNavigationDrawerView_第2张图片

使用方法

修改布局XML文件,请确认需求是需要单页还是多页,单页 app:navigationStyle 的值请选择 singlePage ,多页请选择 multiPage,具体效果图请看上文的效果展示



<androidx.wear.widget.drawer.WearableDrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/dark_grey"
    android:padding="@dimen/box_inset_layout_padding"
    tools:context=".MainActivity"
    tools:deviceIds="wear">

    <androidx.wear.widget.WearableRecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:scrollbars="vertical" />

    
    <androidx.wear.widget.drawer.WearableNavigationDrawerView
        android:id="@+id/wearableNavigationDrawerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:navigationStyle="multiPage">

    androidx.wear.widget.drawer.WearableNavigationDrawerView>

androidx.wear.widget.drawer.WearableDrawerLayout>

新建Item的适配器Adapter,需要继承WearableNavigationDrawerView.WearableNavigationDrawerAdapter

	/**继承WearableNavigationDrawerView.WearableNavigationDrawerAdapter**/
    class Adapter : WearableNavigationDrawerView.WearableNavigationDrawerAdapter {
        var list:MutableList<Data>

        constructor(list: MutableList<Data>) : super() {
            this.list = list
        }

        /**Item显示的文字**/
        override fun getItemText(pos: Int): CharSequence {
            return list[pos].text
        }

        /**Item显示的图片**/
        override fun getItemDrawable(pos: Int): Drawable {
            return list[pos].drawable
        }

        /**Item数量**/
        override fun getCount(): Int {
            return list.size
        }

        data class Data(val text:String,val drawable: Drawable)
    }

Activity处理导航栏Item

class MainActivity : WearableActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // 设置微光模式开启
        setAmbientEnabled()
        /**以下是WearableNavigationDrawerView使用代码**/
        //添加导航Item数据
        val drawerList = arrayListOf<Adapter.Data>()
        drawerList.add(Adapter.Data("第一个",ContextCompat.getDrawable(this,R.drawable.ic_done_black_24dp)!!))
        drawerList.add(Adapter.Data("第二个",ContextCompat.getDrawable(this,R.drawable.ic_close_black_24dp)!!))
        val navigationDrawerAdapter = Adapter(drawerList)
        //设置适配器
        wearableNavigationDrawerView.setAdapter(navigationDrawerAdapter)
    }

}

结语

手表开发和Android开发相似度非常之高,所以强烈推荐Android开发者尝试一下这个新领域,虽然WearOS推出至今已有六个年头,但是国内厂商近两年才开始适配并开始生产,未来发展空间可期。

最后我还有一句话要说

等到风景都看透,也许你会陪我看细水长流

你可能感兴趣的:(Activity,Wear,OS,android,移动开发)