2017-02-10 18 views
0

, как указано в руководствах Google: https://www.google.com/design/spec-wear/components/action-drawer.html#action-drawer-usage в разделе «Одно действие», ActionDrawer нельзя расширять. Мой вопрос в том, как добиться такого поведения?
Я пробовал WearableActionDrawer и WearableDrawerView .. Я также пробовал метод lockDrawerClosed(), но ящик по-прежнему открывается по щелчку. Спасибо за помощь! :)Как создать ActionDrawer с одним действием

Редактировать:
Хорошо, я нашел решение, чтобы остановить выдвижной ящик. Сейчас я использую 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>

Любые мысли, что я делаю неправильно здесь? Благодаря!

ответ

0

Я не вижу никакой ошибки по сравнению с этим sample code. Он заявил, что если у вас есть только одно действие для вашего ящика действий, вы можете использовать (custom) View, чтобы заглянуть поверх содержимого, вызвав mWearableActionDrawer.setPeekContent(View). Просто убедитесь, что вы установили прослушиватель кликов, чтобы обращаться с пользователем, нажав на ваш View.

Вы также можете попробовать использовать mWearableDrawerLayout.peekDrawer(Gravity.BOTTOM);. Еще раз проверьте свою реализацию на основе этого documentation, в котором показано, как инициализировать содержимое ваших ящиков.