Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mDrawerToggle = new ActionBarDrawerToggle(
- getActivityCompat(), /* host Activity */
- mDrawerLayout, /* DrawerLayout object */
- ((BaseActivity) getActivityCompat()).getToolbar(),
- R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
- R.string.navigation_drawer_close /* "close drawer" description for accessibility */
- )
- public void setToggleState(boolean isEnabled) {
- if (mDrawerLayout == null)
- return;
- if (isEnabled) {
- mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
- mDrawerToggle.onDrawerStateChanged(DrawerLayout.LOCK_MODE_UNLOCKED);
- } else {
- mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
- mDrawerToggle.onDrawerStateChanged(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
- }
- mDrawerToggle.syncState();
- }
- mDrawerToggle = new ActionBarDrawerToggle(
- getActivityCompat(), /* host Activity */
- mDrawerLayout, /* DrawerLayout object */
- // ((BaseActivity) getActivityCompat()).getToolbar(), <== delete this argument
- R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
- R.string.navigation_drawer_close /* "close drawer" description for accessibility */
- );
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mFm = getFragmentManager();
- mFm.addOnBackStackChangedListener(this);
- // Setup toolbar
- mToolbar = (Toolbar) findViewById(R.id.toolbar);
- mToolbar.setVisibility(View.VISIBLE);
- setSupportActionBar(mToolbar);
- // Setup drawer toggle
- mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout);
- mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.menu_open, R.string.menu_close);
- mDrawerLayout.setDrawerListener(mDrawerToggle);
- getSupportActionBar().setHomeButtonEnabled(true);
- mDrawerToggle.syncState();
- // Setup initial fragment
- if (savedInstanceState == null) {
- mCurrentFragment = DashboardFragment.newInstance();
- mFm.beginTransaction().add(CONTAINER_ID, mCurrentFragment).commit();
- }
- }
- @Override
- protected void onPostCreate(Bundle savedInstanceState) {
- super.onPostCreate(savedInstanceState);
- mDrawerToggle.syncState();
- }
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- mDrawerToggle.onConfigurationChanged(newConfig);
- }
- @Override
- public void onBackStackChanged() {
- mDrawerToggle.setDrawerIndicatorEnabled(mFm.getBackStackEntryCount() == 0);
- getSupportActionBar().setDisplayHomeAsUpEnabled(mFm.getBackStackEntryCount() > 0);
- mDrawerToggle.syncState();
- }
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- tools:context="com.example.toolbar.Drawer" >
- <include
- android:id="@+id/tool1"
- layout="@layout/toolbar" />
- <android.support.v4.widget.DrawerLayout
- android:id="@+id/drawerLayout"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_below="@id/tool1" >
- <FrameLayout
- android:id="@+id/mainContent"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- </FrameLayout>
- <!-- Nav drawer -->
- <ListView
- android:id="@+id/drawerList"
- android:layout_width="240dp"
- android:layout_height="match_parent"
- android:layout_gravity="left"
- android:background="@android:color/white"
- android:divider="@android:color/white"
- android:dividerHeight="8dp"
- android:drawSelectorOnTop="true"
- android:headerDividersEnabled="true" />
- </android.support.v4.widget.DrawerLayout>
- </RelativeLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app1="http://schemas.android.com/apk/res/com.example.toolbar"
- android:id="@+id/my_awesome_toolbar"
- android:layout_width="fill_parent"
- android:layout_height="75dp"
- android:layout_alignParentLeft="true"
- android:layout_alignParentTop="true"
- android:background="?attr/colorPrimary"
- android:minHeight="?attr/actionBarSize"
- app1:popupTheme="@style/ThemeOverlay.AppCompat.Light"
- app1:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >
- </android.support.v7.widget.Toolbar>
- import android.content.res.Configuration;
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.support.v4.app.FragmentManager;
- import android.support.v4.widget.DrawerLayout;
- import android.support.v7.app.ActionBarActivity;
- import android.support.v7.app.ActionBarDrawerToggle;
- import android.support.v7.widget.Toolbar;
- import android.view.Gravity;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.ArrayAdapter;
- import android.widget.ListView;
- public class Drawer extends ActionBarActivity {
- ActionBarDrawerToggle mDrawerToggle;
- private String[] days;
- ArrayAdapter<String> adapter;
- private ListView mDrawerList;
- DrawerLayout mDrawerLayout;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.drawer);
- days = new String[] { "sunday", "monday", "tuesday", "wednesday",
- "thursday", "friday", "saturday" };
- adapter = new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, days);
- mDrawerList = (ListView) findViewById(R.id.drawerList);
- mDrawerList.setAdapter(adapter);
- mDrawerList.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- // TODO Auto-generated method stub
- Fragment fragment = new MyFragment();
- Bundle args = new Bundle();
- args.putString(MyFragment.ARG_PLANET_NUMBER, days[position]);
- // args.putInt(MyFragment.ARG_PLANET_NUMBER, position);
- fragment.setArguments(args);
- FragmentManager fragmentManager = getSupportFragmentManager();
- fragmentManager.beginTransaction()
- .replace(R.id.mainContent, fragment).commit();
- }
- });
- Toolbar toolbar = (Toolbar) findViewById(R.id.tool1);
- setSupportActionBar(toolbar);
- toolbar.setTitle("ToolBar Demo");
- toolbar.setLogo(R.drawable.ic_launcher);
- mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
- mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar,
- R.string.open_navigation_drawer,
- R.string.close_navigation_drawer) {
- @Override
- public void onDrawerSlide(View drawerView, float slideOffset) {
- // TODO Auto-generated method stub
- super.onDrawerSlide(drawerView, slideOffset);
- }
- /** Called when a drawer has settled in a completely closed state. */
- @Override
- public void onDrawerClosed(View view) {
- super.onDrawerClosed(view);
- getSupportActionBar().setTitle("hello");
- }
- /** Called when a drawer has settled in a completely open state. */
- @Override
- public void onDrawerOpened(View drawerView) {
- super.onDrawerOpened(drawerView);
- getSupportActionBar().setTitle("hi");
- }
- };
- mDrawerLayout.setDrawerListener(mDrawerToggle);
- // getSupportActionBar().setDisplayHomeAsUpEnabled(true); //<---- added
- // getSupportActionBar().setHomeButtonEnabled(true); //<---- added
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) { // <---- added
- if (mDrawerToggle.onOptionsItemSelected(item)) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- @Override
- protected void onPostCreate(Bundle savedInstanceState) { // <---- added
- super.onPostCreate(savedInstanceState);
- mDrawerToggle.syncState(); // important statetment for drawer to
- // identify
- // its state
- }
- @Override
- public void onConfigurationChanged(Configuration newConfig) { // <---- added
- super.onConfigurationChanged(newConfig);
- mDrawerToggle.onConfigurationChanged(newConfig);
- }
- @Override
- public void onBackPressed() {
- if (mDrawerLayout.isDrawerOpen(Gravity.START | Gravity.LEFT)) { // <----
- // added
- mDrawerLayout.closeDrawers();
- return;
- }
- super.onBackPressed();
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
- <android.support.v7.widget.Toolbar
- ...
- app:theme="?actionBarTheme"
- style="@style/Widget.AppCompat.Toolbar">
- <android.support.v7.widget.Toolbar
- ...
- app:theme="?actionBarTheme"
- style="@style/MyWidget.Toolbar">
- <!-- styles.xml -->
- <style name="MyWidget.Toolbar" parent="Widget.AppCompat.Toolbar">
- <item name="navigationIcon">?homeAsUpIndicator</item>
- </style>
- mDrawerLayout.setDrawerListener(mDrawerToggle);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement