Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.97 KB | None | 0 0
  1. mDrawerToggle = new ActionBarDrawerToggle(
  2. getActivityCompat(), /* host Activity */
  3. mDrawerLayout, /* DrawerLayout object */
  4. ((BaseActivity) getActivityCompat()).getToolbar(),
  5. R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
  6. R.string.navigation_drawer_close /* "close drawer" description for accessibility */
  7. )
  8.  
  9. public void setToggleState(boolean isEnabled) {
  10. if (mDrawerLayout == null)
  11. return;
  12.  
  13. if (isEnabled) {
  14. mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
  15. mDrawerToggle.onDrawerStateChanged(DrawerLayout.LOCK_MODE_UNLOCKED);
  16. } else {
  17. mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
  18. mDrawerToggle.onDrawerStateChanged(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
  19. }
  20. mDrawerToggle.syncState();
  21. }
  22.  
  23. mDrawerToggle = new ActionBarDrawerToggle(
  24. getActivityCompat(), /* host Activity */
  25. mDrawerLayout, /* DrawerLayout object */
  26. // ((BaseActivity) getActivityCompat()).getToolbar(), <== delete this argument
  27. R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
  28. R.string.navigation_drawer_close /* "close drawer" description for accessibility */
  29. );
  30.  
  31. @Override
  32. protected void onCreate(Bundle savedInstanceState) {
  33. super.onCreate(savedInstanceState);
  34. setContentView(R.layout.activity_main);
  35.  
  36. mFm = getFragmentManager();
  37. mFm.addOnBackStackChangedListener(this);
  38.  
  39. // Setup toolbar
  40. mToolbar = (Toolbar) findViewById(R.id.toolbar);
  41. mToolbar.setVisibility(View.VISIBLE);
  42. setSupportActionBar(mToolbar);
  43.  
  44. // Setup drawer toggle
  45. mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout);
  46. mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.menu_open, R.string.menu_close);
  47. mDrawerLayout.setDrawerListener(mDrawerToggle);
  48. getSupportActionBar().setHomeButtonEnabled(true);
  49. mDrawerToggle.syncState();
  50.  
  51. // Setup initial fragment
  52. if (savedInstanceState == null) {
  53. mCurrentFragment = DashboardFragment.newInstance();
  54. mFm.beginTransaction().add(CONTAINER_ID, mCurrentFragment).commit();
  55. }
  56. }
  57.  
  58. @Override
  59. protected void onPostCreate(Bundle savedInstanceState) {
  60. super.onPostCreate(savedInstanceState);
  61. mDrawerToggle.syncState();
  62. }
  63.  
  64. @Override
  65. public void onConfigurationChanged(Configuration newConfig) {
  66. super.onConfigurationChanged(newConfig);
  67. mDrawerToggle.onConfigurationChanged(newConfig);
  68. }
  69.  
  70. @Override
  71. public void onBackStackChanged() {
  72. mDrawerToggle.setDrawerIndicatorEnabled(mFm.getBackStackEntryCount() == 0);
  73. getSupportActionBar().setDisplayHomeAsUpEnabled(mFm.getBackStackEntryCount() > 0);
  74. mDrawerToggle.syncState();
  75. }
  76.  
  77. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  78. xmlns:tools="http://schemas.android.com/tools"
  79. android:layout_width="match_parent"
  80. android:layout_height="match_parent"
  81. android:orientation="vertical"
  82. tools:context="com.example.toolbar.Drawer" >
  83.  
  84. <include
  85. android:id="@+id/tool1"
  86. layout="@layout/toolbar" />
  87.  
  88.  
  89.  
  90. <android.support.v4.widget.DrawerLayout
  91. android:id="@+id/drawerLayout"
  92. android:layout_width="match_parent"
  93. android:layout_height="match_parent"
  94. android:layout_below="@id/tool1" >
  95.  
  96. <FrameLayout
  97. android:id="@+id/mainContent"
  98. android:layout_width="match_parent"
  99. android:layout_height="match_parent" >
  100. </FrameLayout>
  101.  
  102. <!-- Nav drawer -->
  103.  
  104. <ListView
  105. android:id="@+id/drawerList"
  106. android:layout_width="240dp"
  107. android:layout_height="match_parent"
  108. android:layout_gravity="left"
  109. android:background="@android:color/white"
  110. android:divider="@android:color/white"
  111. android:dividerHeight="8dp"
  112. android:drawSelectorOnTop="true"
  113. android:headerDividersEnabled="true" />
  114. </android.support.v4.widget.DrawerLayout>
  115.  
  116. </RelativeLayout>
  117.  
  118. <?xml version="1.0" encoding="utf-8"?>
  119. <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
  120. xmlns:app1="http://schemas.android.com/apk/res/com.example.toolbar"
  121. android:id="@+id/my_awesome_toolbar"
  122. android:layout_width="fill_parent"
  123. android:layout_height="75dp"
  124. android:layout_alignParentLeft="true"
  125. android:layout_alignParentTop="true"
  126. android:background="?attr/colorPrimary"
  127. android:minHeight="?attr/actionBarSize"
  128. app1:popupTheme="@style/ThemeOverlay.AppCompat.Light"
  129. app1:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >
  130.  
  131. </android.support.v7.widget.Toolbar>
  132.  
  133. import android.content.res.Configuration;
  134. import android.os.Bundle;
  135. import android.support.v4.app.Fragment;
  136. import android.support.v4.app.FragmentManager;
  137. import android.support.v4.widget.DrawerLayout;
  138. import android.support.v7.app.ActionBarActivity;
  139. import android.support.v7.app.ActionBarDrawerToggle;
  140. import android.support.v7.widget.Toolbar;
  141. import android.view.Gravity;
  142. import android.view.Menu;
  143. import android.view.MenuItem;
  144. import android.view.View;
  145. import android.widget.AdapterView;
  146. import android.widget.AdapterView.OnItemClickListener;
  147. import android.widget.ArrayAdapter;
  148. import android.widget.ListView;
  149.  
  150. public class Drawer extends ActionBarActivity {
  151.  
  152. ActionBarDrawerToggle mDrawerToggle;
  153. private String[] days;
  154. ArrayAdapter<String> adapter;
  155. private ListView mDrawerList;
  156. DrawerLayout mDrawerLayout;
  157.  
  158. @Override
  159. protected void onCreate(Bundle savedInstanceState) {
  160. super.onCreate(savedInstanceState);
  161. setContentView(R.layout.drawer);
  162.  
  163. days = new String[] { "sunday", "monday", "tuesday", "wednesday",
  164. "thursday", "friday", "saturday" };
  165. adapter = new ArrayAdapter<String>(this,
  166. android.R.layout.simple_list_item_1, days);
  167. mDrawerList = (ListView) findViewById(R.id.drawerList);
  168. mDrawerList.setAdapter(adapter);
  169. mDrawerList.setOnItemClickListener(new OnItemClickListener() {
  170.  
  171. @Override
  172. public void onItemClick(AdapterView<?> parent, View view,
  173. int position, long id) {
  174. // TODO Auto-generated method stub
  175.  
  176. Fragment fragment = new MyFragment();
  177. Bundle args = new Bundle();
  178. args.putString(MyFragment.ARG_PLANET_NUMBER, days[position]);
  179. // args.putInt(MyFragment.ARG_PLANET_NUMBER, position);
  180. fragment.setArguments(args);
  181.  
  182. FragmentManager fragmentManager = getSupportFragmentManager();
  183. fragmentManager.beginTransaction()
  184. .replace(R.id.mainContent, fragment).commit();
  185.  
  186. }
  187.  
  188. });
  189.  
  190. Toolbar toolbar = (Toolbar) findViewById(R.id.tool1);
  191.  
  192. setSupportActionBar(toolbar);
  193. toolbar.setTitle("ToolBar Demo");
  194. toolbar.setLogo(R.drawable.ic_launcher);
  195.  
  196. mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
  197.  
  198. mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar,
  199. R.string.open_navigation_drawer,
  200. R.string.close_navigation_drawer) {
  201.  
  202. @Override
  203. public void onDrawerSlide(View drawerView, float slideOffset) {
  204. // TODO Auto-generated method stub
  205. super.onDrawerSlide(drawerView, slideOffset);
  206. }
  207.  
  208. /** Called when a drawer has settled in a completely closed state. */
  209. @Override
  210. public void onDrawerClosed(View view) {
  211. super.onDrawerClosed(view);
  212. getSupportActionBar().setTitle("hello");
  213. }
  214.  
  215. /** Called when a drawer has settled in a completely open state. */
  216. @Override
  217. public void onDrawerOpened(View drawerView) {
  218. super.onDrawerOpened(drawerView);
  219. getSupportActionBar().setTitle("hi");
  220. }
  221. };
  222. mDrawerLayout.setDrawerListener(mDrawerToggle);
  223.  
  224. // getSupportActionBar().setDisplayHomeAsUpEnabled(true); //<---- added
  225. // getSupportActionBar().setHomeButtonEnabled(true); //<---- added
  226.  
  227. }
  228.  
  229. @Override
  230. public boolean onOptionsItemSelected(MenuItem item) { // <---- added
  231. if (mDrawerToggle.onOptionsItemSelected(item)) {
  232. return true;
  233. }
  234. return super.onOptionsItemSelected(item);
  235. }
  236.  
  237. @Override
  238. protected void onPostCreate(Bundle savedInstanceState) { // <---- added
  239. super.onPostCreate(savedInstanceState);
  240. mDrawerToggle.syncState(); // important statetment for drawer to
  241. // identify
  242. // its state
  243. }
  244.  
  245. @Override
  246. public void onConfigurationChanged(Configuration newConfig) { // <---- added
  247. super.onConfigurationChanged(newConfig);
  248. mDrawerToggle.onConfigurationChanged(newConfig);
  249. }
  250.  
  251. @Override
  252. public void onBackPressed() {
  253. if (mDrawerLayout.isDrawerOpen(Gravity.START | Gravity.LEFT)) { // <----
  254. // added
  255. mDrawerLayout.closeDrawers();
  256. return;
  257. }
  258. super.onBackPressed();
  259. }
  260.  
  261. @Override
  262. public boolean onCreateOptionsMenu(Menu menu) {
  263. // Inflate the menu; this adds items to the action bar if it is present.
  264. getMenuInflater().inflate(R.menu.main, menu);
  265. return true;
  266. }
  267.  
  268. }
  269.  
  270. <android.support.v7.widget.Toolbar
  271. ...
  272. app:theme="?actionBarTheme"
  273. style="@style/Widget.AppCompat.Toolbar">
  274.  
  275. <android.support.v7.widget.Toolbar
  276. ...
  277. app:theme="?actionBarTheme"
  278. style="@style/MyWidget.Toolbar">
  279. <!-- styles.xml -->
  280. <style name="MyWidget.Toolbar" parent="Widget.AppCompat.Toolbar">
  281. <item name="navigationIcon">?homeAsUpIndicator</item>
  282. </style>
  283.  
  284. mDrawerLayout.setDrawerListener(mDrawerToggle);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement