Wear OS手表应用开发教程之-创建环形滚动列表-WearableRecyclerView

本文标签

Android Studio Wear OS WearableRecyclerView 环形滚动列表

前言:

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

现在我们要做的是在我们的手表应用上添加List的显示。因为开源的性质,手表厂商开发出来的屏幕除了方形以外,还有圆形,缺角圆形等。。。这时候我们普通的垂直线性列表展示就会出现问题了,比如圆形表盘的四周会有一部分Item界面缺失的情况,Google已经考虑到这种情况,当我们使用RecyclerView展示列表时可以选择使用WearableRecyclerView来替代传统的列表,当方形表盘时显示线性列表,当圆形表盘时显示曲线列表,显示效果如下图,您可根据实际业务需求选择是否采取WearableRecyclerView

效果展示

alt

使用方法

布局界面添加:

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

应用到Activity:

class MainActivity : WearableActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // Enables Always-on
        setAmbientEnabled()
        //创建伪数据
        val list = mutableListOf<String>()
        for (index in 0..20) {
            list.add("Demo__${index}")
        }
        //如果想要自适应手表表盘请使用WearableLinearLayoutManager,如果不需要适配表盘可以使用LinearLayoutManager
        recycler_view.layoutManager = WearableLinearLayoutManager(this@MainActivity)
        //第一个列表项和最后一个列表项在屏幕上垂直居中对齐
        recycler_view.isEdgeItemsCenteringEnabled = true
        //是否可以使用圆形滚动手势
        recycler_view.isCircularScrollingGestureEnabled = true
        //靠近屏幕边缘的虚拟“屏幕边框”(在此区域内能够识别出手势)的宽度
        recycler_view.bezelFraction = 0.5f
        //用户的手指必须旋转多少度才能滚过一个屏幕高度
        recycler_view.scrollDegreesPerScreen = 90f
        //设置List适配器
        recycler_view.adapter = DemoAdapter(list)
    }
}

DemoAdapter代码:

class DemoAdapter: RecyclerView.Adapter<DemoAdapter.ViewHolder> {
    var list:MutableList<String>? = null

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


    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val textView:TextView = itemView.findViewById(R.id.textView)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        return ViewHolder(View.inflate(parent.context,R.layout.item_demo,null))
    }

    override fun getItemCount(): Int {
        return list!!.size
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.textView.text = list!![position]
    }
}

结语

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

最后我还有一句话要说

世界上最遥远的距离,不是生与死的距离,不是天各一方,而是,我就站在你的面前,你却不知道我爱你。

张小娴《荷包里的单人床》

Wear OS手表应用开发系列教程

Wear OS手表应用开发教程之-创建应用
Wear OS手表应用开发教程之-创建环形滚动列表-WearableRecyclerView

猜你喜欢

转载自blog.csdn.net/WitheredSkull/article/details/107819055
今日推荐