欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-11 16:24:08
本文目录 点击直达Wear OS手表应用开发系列教程 点击直达本文标签前言:效果展示使用方法结语最后我还有一句话要说人生下来不是为了拖着锁链,而是为了展开双翼。 Wear OS手表应用开发系列教程 点击直达Wear OS手表应用开发教程之-创建应用Wear OS手表应用开发教程之-创建环形滚动列表-WearableRecyclerViewWear OS手表应用开发教程之-禁止全屏滑动返回ActivityWear OS手表应用开发教程之-侧滑隐藏-SwipeDismissFrameLayoutW...

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

Wear OS手表应用开发教程之-创建应用
Wear OS手表应用开发教程之-创建环形滚动列表-WearableRecyclerView
Wear OS手表应用开发教程之-禁止全屏滑动返回Activity
Wear OS手表应用开发教程之-侧滑隐藏-SwipeDismissFrameLayout
Wear OS手表应用开发教程之-Activity使用微光模式-AmbientModeSupport
Wear OS手表应用开发教程之-顶部导航-WearableNavigationDrawerView
Wear OS手表应用开发教程之-底部导航-WearableActionDrawerView
Wear OS手表应用开发教程之-自定义导航栏布局-WearableDrawerView(动态控制)

本文标签

Android Studio Wear OS WearableNavigationDrawerView 顶部导航

路过的年轻人啊,你是要用左手点个赞呢,还是要右手点个关注呢

前言:

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

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

效果展示:

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

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

使用方法:

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

<?xml version="1.0" encoding="utf-8"?>
<!--*布局必须是这个-->
<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" />

    <!--添加以下代码。navigationStyle可选值:singlePage(单页模式)/multiPage(多页模式)-->
    <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推出至今已有六个年头,但是国内厂商近两年才开始适配并开始生产,未来发展空间可期。

最后我还有一句话要说:

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

本文地址:https://blog.csdn.net/WitheredSkull/article/details/107941087