【问题标题】:Wearable Action Drawer broke after upgrading to the release of Wear 2.0.0Wearable Action Drawer 在升级到 Wear 2.0.0 版本后坏了
【发布时间】:2017-02-12 19:24:33
【问题描述】:

我的视图中有一个动作抽屉,其中包含 3 个项目,从菜单 xml 文件中提取。

<android.support.wearable.view.drawer.WearableActionDrawer
    android:id="@+id/bottom_action_drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:action_menu="@menu/action_drawer_menu"
    android:background="@color/menu_background"/>

菜单文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_calibrate"
        android:icon="@drawable/ic_balls"
        android:title="@string/calibrate_shots"/>
    <item android:id="@+id/menu_play"
        android:icon="@drawable/ic_tennis"
        android:title="@string/play_session" />
    <item android:id="@+id/menu_sync"
        android:icon="@drawable/ic_synchronize"
        android:title="@string/sync_sessions" />
</menu>

当使用 com.google.android.support:wearable:2.0.0-alpha3 编译时,一切正常,当我在菜单的“peek”边缘点击标签时,菜单打开正常。 Wut 使用 com.google.android.support:wearable:2.0.0 时,点击“peek”边缘只会为菜单中的第一项运行 onclick 事件。 onclick 的 Java 代码:

@Override
    public boolean onMenuItemClick(MenuItem menuItem) {
        if(menuItem.getTitle().toString().equals(getResources().getString(R.string.play_session))) {
            startStartPlayActivity();
        } else if(menuItem.getTitle().toString().equals(getResources().getString(R.string.calibrate_shots))) {
            startStartCalibrationActivity();
        } else if(menuItem.getTitle().toString().equals(getResources().getString(R.string.sync_sessions))) {
            startSyncActiviy();
        } 
        mContainerView.peekDrawer(Gravity.BOTTOM);
        return false;
    }

如果这是版本的错误或我做错了什么,有什么想法吗?我正在测试 LG Urbane 第二代 LTE。

【问题讨论】:

    标签: wear-os android-wear-2.0


    【解决方案1】:

    根据Peeking Drawers documentation

    默认情况下,当有多个动作时,动作抽屉会显示第一个带有 V 形符号的动作。

    因此点击偷看抽屉应该触发第一个动作。它继续说:

    如果您希望只显示溢出图标(3 个垂直点)而不执行第一个操作,您可以通过将 show_overflow_in_peek flag 设置为 true 来覆盖默认行为。

     <android.support.wearable.view.drawer.WearableActionDrawer
          android:id="@+id/bottom_drawer"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@android:color/holo_blue_dark"
          app:show_overflow_in_peek="true"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      相关资源
      最近更新 更多