NavigationViewUsage.java revision 2c3f91e41982232dacb2ee34e604bf8c00a0e87a
152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki/*
252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * Copyright (C) 2015 The Android Open Source Project
352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki *
452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * Licensed under the Apache License, Version 2.0 (the "License");
552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * you may not use this file except in compliance with the License.
652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * You may obtain a copy of the License at
752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki *
852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki *      http://www.apache.org/licenses/LICENSE-2.0
952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki *
1052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * Unless required by applicable law or agreed to in writing, software
1152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * distributed under the License is distributed on an "AS IS" BASIS,
1252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * See the License for the specific language governing permissions and
1452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * limitations under the License.
1552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki */
1652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
1752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakipackage com.example.android.support.design.widget;
1852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
1952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport com.example.android.support.design.R;
2052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
2152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.os.Bundle;
2252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.support.design.widget.NavigationView;
2352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.support.v4.view.GravityCompat;
2452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.support.v4.widget.DrawerLayout;
2552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.support.v7.widget.Toolbar;
2652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.util.TypedValue;
2752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.view.MenuItem;
2852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.view.View;
2952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
3052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki/**
3152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * This demonstrates basic usage of NavigationView
3252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki */
332c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakipublic class NavigationViewUsage extends NavigationViewUsageBase {
3452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
3552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    private DrawerLayout mDrawerLayout;
3652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
3752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    @Override
3852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    protected void onCreate(Bundle savedInstanceState) {
3952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        super.onCreate(savedInstanceState);
4052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
4152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
4252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
4352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        // Set the color of status bar
4452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        TypedValue value = new TypedValue();
4552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        getTheme().resolveAttribute(R.attr.colorPrimaryDark, value, true);
4652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        mDrawerLayout.setStatusBarBackgroundColor(value.data);
4752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
4852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        // Retrieve the Toolbar from our content view, and set it as the action bar
4952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
5052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        setSupportActionBar(toolbar);
5152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
5252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        // Toggle icon
5352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        toolbar.setNavigationIcon(R.drawable.ic_action_navigation_menu);
5452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
5552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            @Override
5652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            public void onClick(View view) {
5752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki                mDrawerLayout.openDrawer(GravityCompat.START);
5852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            }
5952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        });
6052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    }
6152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
622c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    @Override
632c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    protected int getLayout() {
642c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        return R.layout.design_navigation;
6552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    }
6652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
672c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    @Override
682c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    public NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener() {
692c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        return new NavigationView.OnNavigationItemSelectedListener() {
702c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            @Override
712c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            public boolean onNavigationItemSelected(MenuItem item) {
722c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                if (handleNavigationItemSelected(item)) {
732c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                    mDrawerLayout.closeDrawers();
742c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                    return true;
752c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                }
762c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return false;
772c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            }
782c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        };
7952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    }
8052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
8152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    @Override
8252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    public void onBackPressed() {
8352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
8452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            mDrawerLayout.closeDrawer(GravityCompat.START);
8552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        } else {
8652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            super.onBackPressed();
8752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        }
8852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    }
8952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
9052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki}
91