Instantly share code, notes, and snippets.
Last active
December 27, 2015 12:44
-
Star
0
(0)
You must be signed in to star a gist -
Fork
0
(0)
You must be signed in to fork a gist
-
Save ShubhamMahajan/51f29b3cfdf7289f54be to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.semitransparentnavigationdrawer; | |
import android.content.Context; | |
import android.content.SharedPreferences; | |
import android.content.res.Configuration; | |
import android.os.Build; | |
import android.os.Bundle; | |
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.support.v7.widget.Toolbar; | |
import android.util.Log; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import android.view.WindowManager; | |
import android.widget.AdapterView; | |
import android.widget.ArrayAdapter; | |
import android.widget.ListView; | |
import android.widget.TextView; | |
public class MainActivity extends AppCompatActivity { | |
private DrawerLayout mDrawerLayout; | |
private ListView mDrawerList; | |
private ActionBarDrawerToggle mDrawerToggle; | |
private CharSequence mDrawerTitle; | |
private CharSequence mTitle; | |
private String[] mPlanetTitles; | |
Toolbar toolbar; | |
private ArrayAdapter arrayAdapter; | |
String[] Draw_item = {"Profile", "Trinity Tuts", "Trinity tips", "Logout"}; | |
private ActionBar actionBar; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
mTitle = mDrawerTitle = getTitle(); | |
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); | |
mDrawerList = (ListView) findViewById(R.id.left_drawer); | |
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); | |
setSupportActionBar(toolbar); | |
actionBar = getSupportActionBar(); | |
TextView titletool = (TextView) findViewById(R.id.titletool); | |
titletool.setText("Semi Transparent Navigation Drawer"); | |
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { | |
getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, | |
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); | |
// Set paddingTop of toolbar to height of status bar. | |
// Fixes statusbar covers toolbar issue | |
toolbar.setPadding(0, getStatusBarHeight(), 0, 0); | |
} | |
LayoutInflater inflater = getLayoutInflater(); | |
View header = inflater.inflate(R.layout.header, mDrawerList, false); | |
mDrawerList.addHeaderView(header); | |
arrayAdapter = new ArrayAdapter(MainActivity.this, R.layout.draweritem, R.id.tvName, Draw_item); | |
mDrawerList.setAdapter(arrayAdapter); | |
mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); | |
// ActionBarDrawerToggle ties together the the proper interactions | |
// between the sliding drawer and the action bar app icon | |
mDrawerToggle = new ActionBarDrawerToggle( | |
this, /* host Activity */ | |
mDrawerLayout, /* DrawerLayout object */ | |
toolbar, /* nav drawer image to replace 'Up' caret */ | |
R.string.drawer_open, /* "open drawer" description for accessibility */ | |
R.string.drawer_close /* "close drawer" description for accessibility */ | |
) { | |
public void onDrawerClosed(View view) { | |
//getSupportActionBar().setTitle(mTitle); | |
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() | |
} | |
public void onDrawerOpened(View drawerView) { | |
//getSupportActionBar().setTitle(mDrawerTitle); | |
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() | |
} | |
}; | |
mDrawerLayout.setDrawerListener(mDrawerToggle); | |
//getSupportActionBar().setDisplayHomeAsUpEnabled(true); | |
//getSupportActionBar().setHomeButtonEnabled(true); | |
mDrawerToggle.syncState(); | |
} | |
/* Called whenever we call invalidateOptionsMenu() */ | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
// The action bar home/up action should open or close the drawer. | |
// ActionBarDrawerToggle will take care of this. | |
if (mDrawerToggle.onOptionsItemSelected(item)) { | |
return true; | |
} | |
return false; | |
} | |
/* The click listner for ListView in the navigation drawer */ | |
private class DrawerItemClickListener implements ListView.OnItemClickListener { | |
@Override | |
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { | |
Log.e("position", "------------------" + position); | |
} | |
} | |
/** | |
* When using the ActionBarDrawerToggle, you must call it during | |
* onPostCreate() and onConfigurationChanged()... | |
*/ | |
@Override | |
protected void onPostCreate(Bundle savedInstanceState) { | |
super.onPostCreate(savedInstanceState); | |
// Sync the toggle state after onRestoreInstanceState has occurred. | |
mDrawerToggle.syncState(); | |
} | |
@Override | |
public void onConfigurationChanged(Configuration newConfig) { | |
super.onConfigurationChanged(newConfig); | |
// Pass any configuration change to the drawer toggls | |
mDrawerToggle.onConfigurationChanged(newConfig); | |
} | |
public int getStatusBarHeight() { | |
int result = 0; | |
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); | |
if (resourceId > 0) { | |
result = getResources().getDimensionPixelSize(resourceId); | |
} | |
return result; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment