如何用一个动作创建一个 ActionDrawer
How to create an ActionDrawer with a single action
正如 google 指南中指出的那样:https://www.google.com/design/spec-wear/components/action-drawer.html#action-drawer-usage
在 'Single Action',ActionDrawer 不应展开。
我的问题是,如何实现这种行为?
我试过 WearableActionDrawer
和 WearableDrawerView
..
我也试过 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>
有没有想过我做错了什么?谢谢!
与此 sample code 相比,我没有发现任何错误。它指出,如果你的 Action Drawer 只有一个动作,你可以使用(自定义)View
通过调用 mWearableActionDrawer.setPeekContent(View)
来查看内容顶部。只要确保你设置了一个点击监听器来处理用户点击你的 View
.
您也可以尝试使用 mWearableDrawerLayout.peekDrawer(Gravity.BOTTOM);
。根据此 documentation 再次检查您的实现,它显示了如何初始化抽屉的内容。
正如 google 指南中指出的那样:https://www.google.com/design/spec-wear/components/action-drawer.html#action-drawer-usage
在 'Single Action',ActionDrawer 不应展开。
我的问题是,如何实现这种行为?
我试过 WearableActionDrawer
和 WearableDrawerView
..
我也试过 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>
有没有想过我做错了什么?谢谢!
与此 sample code 相比,我没有发现任何错误。它指出,如果你的 Action Drawer 只有一个动作,你可以使用(自定义)View
通过调用 mWearableActionDrawer.setPeekContent(View)
来查看内容顶部。只要确保你设置了一个点击监听器来处理用户点击你的 View
.
您也可以尝试使用 mWearableDrawerLayout.peekDrawer(Gravity.BOTTOM);
。根据此 documentation 再次检查您的实现,它显示了如何初始化抽屉的内容。