diff options
Diffstat (limited to 'samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarWithDrawerLayout.java')
-rw-r--r-- | samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarWithDrawerLayout.java | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarWithDrawerLayout.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarWithDrawerLayout.java deleted file mode 100644 index a45edc986..000000000 --- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarWithDrawerLayout.java +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.example.android.supportv7.app; - -import com.example.android.supportv7.R; -import com.example.android.supportv7.Shakespeare; - -import android.content.res.Configuration; -import android.os.Bundle; -import android.support.v4.view.GravityCompat; -import android.support.v4.widget.DrawerLayout; -import android.support.v7.app.ActionBar; -import android.support.v7.app.ActionBarDrawerToggle; -import android.support.v7.app.AppCompatActivity; -import android.view.MenuItem; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.ListView; -import android.widget.TextView; - -public class ActionBarWithDrawerLayout extends AppCompatActivity { - private DrawerLayout mDrawerLayout; - private ListView mDrawer; - private TextView mContent; - - private ActionBarHelper mActionBar; - - private ActionBarDrawerToggle mDrawerToggle; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.action_bar_drawer_layout); - mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); - mDrawer = (ListView) findViewById(R.id.start_drawer); - mContent = (TextView) findViewById(R.id.content_text); - - mDrawerLayout.setDrawerListener(new DemoDrawerListener()); - - // The drawer title must be set in order to announce state changes when - // accessibility is turned on. This is typically a simple description, - // e.g. "Navigation". - mDrawerLayout.setDrawerTitle(GravityCompat.START, getString(R.string.drawer_title)); - - mDrawer.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, - Shakespeare.TITLES)); - mDrawer.setOnItemClickListener(new DrawerItemClickListener()); - - mActionBar = createActionBarHelper(); - mActionBar.init(); - - // ActionBarDrawerToggle provides convenient helpers for tying together the - // prescribed interactions between a top-level sliding drawer and the action bar. - mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, - R.string.drawer_open, R.string.drawer_close); - } - - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - - // Sync the toggle state after onRestoreInstanceState has occurred. - mDrawerToggle.syncState(); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - /* - * The action bar home/up action should open or close the drawer. - * mDrawerToggle will take care of this. - */ - if (mDrawerToggle.onOptionsItemSelected(item)) { - return true; - } - return super.onOptionsItemSelected(item); - } - - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - mDrawerToggle.onConfigurationChanged(newConfig); - } - - /** - * This list item click listener implements very simple view switching by changing - * the primary content text. The drawer is closed when a selection is made. - */ - private class DrawerItemClickListener implements ListView.OnItemClickListener { - @Override - public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - mContent.setText(Shakespeare.DIALOGUE[position]); - mActionBar.setTitle(Shakespeare.TITLES[position]); - mDrawerLayout.closeDrawer(mDrawer); - } - } - - /** - * A drawer listener can be used to respond to drawer events such as becoming - * fully opened or closed. You should always prefer to perform expensive operations - * such as drastic relayout when no animation is currently in progress, either before - * or after the drawer animates. - * - * When using ActionBarDrawerToggle, all DrawerLayout listener methods should be forwarded - * if the ActionBarDrawerToggle is not used as the DrawerLayout listener directly. - */ - private class DemoDrawerListener implements DrawerLayout.DrawerListener { - @Override - public void onDrawerOpened(View drawerView) { - mDrawerToggle.onDrawerOpened(drawerView); - mActionBar.onDrawerOpened(); - } - - @Override - public void onDrawerClosed(View drawerView) { - mDrawerToggle.onDrawerClosed(drawerView); - mActionBar.onDrawerClosed(); - } - - @Override - public void onDrawerSlide(View drawerView, float slideOffset) { - mDrawerToggle.onDrawerSlide(drawerView, slideOffset); - } - - @Override - public void onDrawerStateChanged(int newState) { - mDrawerToggle.onDrawerStateChanged(newState); - } - } - - /** - * Create a compatible helper that will manipulate the action bar if available. - */ - private ActionBarHelper createActionBarHelper() { - return new ActionBarHelper(); - } - - /** - * Action bar helper for use on ICS and newer devices. - */ - private class ActionBarHelper { - private final ActionBar mActionBar; - private CharSequence mDrawerTitle; - private CharSequence mTitle; - - ActionBarHelper() { - mActionBar = getSupportActionBar(); - } - - public void init() { - mActionBar.setDisplayHomeAsUpEnabled(true); - mActionBar.setDisplayShowHomeEnabled(false); - mTitle = mDrawerTitle = getTitle(); - } - - /** - * When the drawer is closed we restore the action bar state reflecting - * the specific contents in view. - */ - public void onDrawerClosed() { - mActionBar.setTitle(mTitle); - } - - /** - * When the drawer is open we set the action bar to a generic title. - * The action bar should only contain data relevant at the top level of - * the nav hierarchy represented by the drawer, as the rest of your content - * will be dimmed down and non-interactive. - */ - public void onDrawerOpened() { - mActionBar.setTitle(mDrawerTitle); - } - - public void setTitle(CharSequence title) { - mTitle = title; - } - } -} |