如何使用WearableDrawerLayout支持多屏幕Wear OS应用

问题描述

我一直在寻找WearableDrawerLayout上的示例,但似乎并不多。我现在特别想支持多个屏幕,一个主屏幕和一个配置屏幕。很难找到例子。 Wear navigation and actions图1是一个很棒的视觉效果,但是辅助代码仅使我了解到这一点。没有涉及的事情之一是使用多个活动还是在布局上切换setVisibility是更好的选择。我假设是后者,但想看看是什么规范。

我也查看了planets example,但它只是在单个屏幕上更改了图像。页面上的code lab for navigations and actions也已弃用。我本以为这将是一种常见的模式,并且会有更多的例子。我想这也很重要。我看到有人提到lack of examples

This documentation很好地展示了它应该如何工作,但是没有代码可以引用如何实现不同的屏幕。

解决方法

自从我上次使用WearableDrawerLayout以来已经有一段时间了,所以现在我的方法可能有点过时了。这是在类似的情况下。主流程(具有多个屏幕)和设置屏幕。这就是我所做的:

布局文件

  • 类型为WearableDrawerLayout的根元素
  • 两个FrameLayout子视图(一个用于主流,一个用于设置屏幕)
  • 一个(已弃用)WearableNavigationDrawer子视图(替换为WearableNavigationDrawerView

活动

  • 使用上面的布局文件(显然...)
  • 将设置片段添加到其专用的FrameLayout容器中
  • 使用其他FrameLayout容器处理主流中不同片段之间的导航(如果主屏幕是静态的,则可以跳过此操作)
  • 通过简单地切换两个Fragment容器的可见性来处理扩展了WearableNavigationDrawerAdapter的内部类中的选择事件

我不确定这是否是最好的方法。我不确定 是最好的方法。这很可能取决于屏幕等的复杂性。您可以按照您的建议直接在布局/视图上切换可见性来做到这一点。

知道上面的实现已经投入生产多年了,没有任何问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...