Wear OS手表应用开发教程之-适配圆形列表-WearableRecyclerView
- 本文标签
- 前言:
- 效果展示
- 使用方法
- 结语
- 最后我还有一句话要说
- 世界上最遥远的距离,不是生与死的距离,不是天各一方,而是,我就站在你的面前,你却不知道我爱你。
- Wear OS手表应用开发系列教程
本文标签
Android Studio | Wear OS | WearableRecyclerView | 环形滚动列表 |
---|
前言:
正如Android一样,Wear OS也是谷歌创建的智能操作系统,属于Android的一个分支。假设你有过Android
Application开发经验,那给Wear OS 做应用适配应该是一件非常简单的事情
现在我们要做的是在我们的手表应用上添加List的显示。因为开源的性质,手表厂商开发出来的屏幕除了方形以外,还有圆形,缺角圆形等。。。这时候我们普通的垂直线性列表展示就会出现问题了,比如圆形表盘的四周会有一部分Item界面缺失的情况,Google已经考虑到这种情况,当我们使用RecyclerView展示列表时可以选择使用
WearableRecyclerView
来替代传统的列表,当方形表盘时显示线性列表,当圆形表盘时显示曲线列表,显示效果如下图
,您可根据实际业务需求选择是否采取WearableRecyclerView
效果展示
使用方法
布局界面添加:
<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
Wear OS手表应用开发教程之-禁止全屏滑动返回Activity