2016-02-17 3 views
2

Мне нужно открыть навигацию с обеих сторон с помощью другого меню. Также мне нужно изменить значок навигации (в настоящее время с тремя горизонтальными линиями). Это лучше, если я могу открыть nav_view и na_view2 с отдельными нажатиями кнопок, эти кнопки доступны на моей панели инструментов, или мне нужно знать, как установить отдельные значки с обеих сторон ?.Навигация на обеих сторонах

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer" /> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view2" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="end" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer1" /> 

</android.support.v4.widget.DrawerLayout> 

Любая помощь будет очень заметной.

ответ

6

Хорошо, я нашел ответ. Здесь я добавил, что кто-то получит помощь, которая действительно нуждается в ответе на этот вопрос.

Мы можем получить кнопки из панели инструментов по следующим направлениям,

Button btnStart = (Button) findViewById(R.id.btnStart); 
Button btnEnd = (Button) findViewById(R.id.btnEnd); 

и в то время как нажать кнопку запуска мы можем открыть и скрыть левый ящик по следующему слушателю,

btnStart.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (drawer.isDrawerOpen(GravityCompat.START)) 
      drawer.closeDrawer(GravityCompat.START); 
     else drawer.openDrawer(GravityCompat.START); 
    } 
}); 

и в то время как мыши конец мы можем открыть и спрятать правый ящик, следуя слушателю,

btnEnd.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (drawer.isDrawerOpen(GravityCompat.END)) 
      drawer.closeDrawer(GravityCompat.END); 
     else drawer.openDrawer(GravityCompat.END); 
    } 
}); 

И наш onBackPressed метод будет

public void onBackPressed() { 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer.isDrawerOpen(GravityCompat.START)) { 
     drawer.closeDrawer(GravityCompat.START); 
    } else if (drawer.isDrawerOpen(GravityCompat.END)) { 
     drawer.closeDrawer(GravityCompat.END); 
    } else { 
     super.onBackPressed(); 
    } 
} 

Это также используется, чтобы закрыть ящики, если таковые есть в открытом состоянии.

Более пожалуйста, смотрите мой блог http://v4all123.blogspot.in/2016/03/simple-example-of-navigation-view-on.html

Я надеюсь, что это поможет кому-то.

Смежные вопросы