如何使用单个操作创建ActionDrawer

时间:2017-02-10 09:50:42

标签: wear-os android-wear-2.0

正如Google指南中指出的那样:https://www.google.com/design/spec-wear/components/action-drawer.html#action-drawer-usage 在“单一动作”中,ActionDrawer不应该是可扩展的。 我的问题是,如何实现这种行为? 我试过WearableActionDrawerWearableDrawerView .. 我也尝试了lockDrawerClosed()方法,但抽屉仍然点击打开。 谢谢你的帮助! :)

编辑:
好的,我找到了解决方案来阻止抽屉打开。我现在正在使用WearableActionDrawer并致电lockDrawerClosed()。但现在我不确定如何正确改变peek_view。

我制作了一个自定义视图 - LinearLayout - 它包含一个ImageView。我在mWearableActiondrawer.setPeekView(myView)使用此视图。但问题是,视图无法正确显示。它只是向我显示底部的空ActionDrawer。 但clicklistener正在工作..

这是我的代码:

// Bottom Action Drawer
mWearableActionDrawer = (WearableActionDrawer) findViewById(R.id.bottom_action_drawer);
mWearableActionDrawer.lockDrawerClosed();

LayoutInflater layoutInflater =
    (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
LinearLayout view =
    (LinearLayout) layoutInflater.inflate(R.layout.action_drawer_peek_view, null);

mWearableActionDrawer.setPeekContent(view);

view.setOnClickListener(new View.OnClickListener() {
  @Override public void onClick(View v) {
    Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
  }
});

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/action_drawer_peek_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/wearable_primary"
    android:orientation="vertical"
    >
  <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="center_horizontal"
      android:padding="10dp"
      android:src="@drawable/fill_1_copy"
      />
</LinearLayout>

对我在这里做错了什么的想法?谢谢!

1 个答案:

答案 0 :(得分:0)

与此sample code相比,我没有看到任何错误。它表示,如果您的动作抽屉只有一个动作,则可以使用(自定义)View通过调用mWearableActionDrawer.setPeekContent(View)来查看内容。只需确保设置点击监听器以处理用户点击View

您也可以尝试使用mWearableDrawerLayout.peekDrawer(Gravity.BOTTOM);。请再次检查您的实施情况documentation,其中显示了如何初始化抽屉的内容。