Skip to content

Most visited

Recently visited

navigation

旋转输入

某些 Android Wear 设备支持旋转输入,如侧面旋钮 (RSB)。当用户扭动旋钮时,您的应用的当前视图应向上或向下滚动。

如果您在应用中使用 ScrollViewListViewHorizontalScrollViewWearableRecyclerView,那么,默认情况下,您的应用视图将获得旋转输入支持。如果您使用上述视图以外的自定义视图,或者您希望手动处理旋转输入 Event,请参阅添加自定义旋转输入滚动

聚焦最佳做法

为响应旋转输入 Event,您的滚动视图必须位于焦点中。大多数情况下,系统会自动聚焦;在创建 Activity 后,您的滚动视图将立即成为焦点。不过,在有些情况下,您需要手动处理应用视图的聚焦,例如:

添加自定义旋转输入滚动

如果您的可滚动视图不能为旋转输入滚动提供原生支持,或者您想执行滚动以外的其他一些操作以响应旋转输入 Event(放大/缩小、旋转表盘等),您可以使用穿戴式设备支持库中的 RotaryEncoder 函数。

以下代码段演示如何使用 RotaryEncoder 以在应用视图中添加自定义滚动:

myView.setOnGenericMotionListener(new View.OnGenericMotionListener() {
    @Override
    public boolean onGenericMotion(View v, MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_SCROLL && RotaryEncoder.isFromRotaryEncoder(ev)) {
            // Don't forget the negation here
            float delta = -RotaryEncoder.getRotaryAxisValue(ev) * RotaryEncoder.getScaledScrollFactor(
            getContext());

            // Swap these axes if you want to do horizontal scrolling instead
            scrollBy(0, Math.round(delta));

            return true;
        }

        return false;
    }
});

在模拟器上测试旋转输入按钮

您可以使用 Android Emulator 模拟 Wear 设备上的旋转输入滚动。您可以在运行项目时在模拟器上启动 Wear 应用,也可以将 APK 文件拖动到模拟器上,安装应用。

要在模拟器上测试旋转输入,请执行以下操作:

  1. Canary 发布渠道获取最新的 Wear 模拟器 26.0.1 系统映像。
  2. SDK 管理器中,使用 SDK tools 标签获取 Android Emulator 的最新版本。
  3. 创建包含 API 25 的 AVD (Android Virtual Device)。

    在 Studio 中,选择 Tools>Android>AVD Manager创建包含 API 25 的新 Wear 设备

  4. 从 Android Studio 运行模拟器
  5. 尝试旋转输入滚动。

    点击溢出按钮(模拟器工具栏底部的三个点)。点击新窗口中的 Rotary input 标签以打开旋转输入界面。

有关旋转输入在模拟器上的工作方式的概览,请观看以下视频。

聚焦行为温馨提示

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)