当前位置:   article > 正文

Android Studio布局模板二之Navigation Menu_android studio layout模板

android studio layout模板

昨天晚上敲到快凌晨一点的时候,把这个模板的导航栏敲出来的。


添加 compile 'com.android.support:design:23.2.1'

关于布局文件层次结构:



代码较琐,贴一下较为主要的:

一、activity_layout.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. xmlns:app="http://schemas.android.com/apk/res-auto"
  5. android:id="@+id/drawerLayout"
  6. android:layout_width="match_parent"
  7. android:layout_height="match_parent"
  8. android:fitsSystemWindows="true"
  9. tools:openDrawer="start"
  10. tools:context="com.example.hejingzhou.navigationdemo.MainActivity">
  11. <include
  12. layout="@layout/toolbar_layout"
  13. android:layout_width="match_parent"
  14. android:layout_height="match_parent" />
  15. <android.support.design.widget.NavigationView
  16. android:background="#778899"
  17. android:id="@+id/navigationView"
  18. android:layout_width="wrap_content"
  19. android:layout_height="match_parent"
  20. android:layout_gravity = "start"
  21. android:fitsSystemWindows="true"
  22. app:headerLayout="@layout/header_layout"
  23. app:menu="@menu/self_menu"/>
  24. </android.support.v4.widget.DrawerLayout>


二、MainActivity.java

  1. package com.example.hejingzhou.navigationdemo;
  2. import android.content.Intent;
  3. import android.support.design.widget.NavigationView;
  4. import android.support.v4.view.GravityCompat;
  5. import android.support.v4.widget.DrawerLayout;
  6. import android.support.v7.app.ActionBarDrawerToggle;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.os.Bundle;
  9. import android.support.v7.widget.Toolbar;
  10. import android.view.Menu;
  11. import android.view.MenuItem;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.Toast;
  15. public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.activity_main);
  20. Button TestBtn = (Button)findViewById(R.id.TestButton);
  21. TestBtn.setOnClickListener(new View.OnClickListener() {
  22. @Override
  23. public void onClick(View v) {
  24. Toast.makeText(MainActivity.this, "点击了测试Button", Toast.LENGTH_SHORT).show();
  25. }
  26. });
  27. Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
  28. toolbar.setTitle("贺景洲");
  29. setSupportActionBar(toolbar);
  30. DrawerLayout drawerLayout = (DrawerLayout)findViewById(R.id.drawerLayout);
  31. ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(//ActionBarDrawerToggle将组件组合的一个简单的方法类
  32. this,drawerLayout,toolbar,R.string.open,R.string.close);
  33. /**
  34. * ActionBarDrawerToggle 构造方法
  35. * @param activity The Activity hosting the drawer.
  36. * @param toolbar The toolbar to use if you have an independent Toolbar.
  37. * @param drawerLayout The DrawerLayout to link to the given Activity's ActionBar
  38. * @param openDrawerContentDescRes A String resource to describe the "open drawer" action
  39. * for accessibility
  40. * @param closeDrawerContentDescRes A String resource to describe the "close drawer" action
  41. * for accessibility
  42. */
  43. drawerLayout.setDrawerListener(toggle);// 抽屉事件通知设置一个侦听器
  44. toggle.syncState();//抽屉的状态指示器/启示与链接DrawerLayout同步
  45. NavigationView navigationView = (NavigationView)findViewById(R.id.navigationView);
  46. navigationView.setNavigationItemSelectedListener(this);//设置一个侦听器,当单击菜单项时,将通知。
  47. }
  48. /**
  49. * 当按下返回键的时候的 如果抽屉开着将关闭抽屉
  50. */
  51. @Override
  52. public void onBackPressed() {
  53. DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawerLayout);
  54. if(drawer.isDrawerOpen(GravityCompat.START)){
  55. drawer.closeDrawer(GravityCompat.START);
  56. }else {
  57. super.onBackPressed();
  58. }
  59. //super.onBackPressed();
  60. }
  61. /**
  62. * 抽屉项的监听
  63. * @param item
  64. * @return
  65. */
  66. @Override
  67. public boolean onNavigationItemSelected(MenuItem item) {
  68. int id = item.getItemId();
  69. if(id == R.id.message){
  70. Toast.makeText(this,"点击了个人信息",Toast.LENGTH_SHORT).show();
  71. }else if(id == R.id.camera){
  72. Toast.makeText(this,"点击了打开相机",Toast.LENGTH_SHORT).show();
  73. }else if(id == R.id.joke){
  74. Toast.makeText(this,"点击了今日笑话",Toast.LENGTH_SHORT).show();
  75. }else if(id == R.id.phto){
  76. Toast.makeText(this,"点击了我的图库",Toast.LENGTH_SHORT).show();
  77. }else if(id == R.id.setNet){
  78. Toast.makeText(this,"点击了网络设置",Toast.LENGTH_SHORT).show();
  79. }else if(id == R.id.setbluetools){
  80. Toast.makeText(this,"点击了蓝牙设置",Toast.LENGTH_SHORT).show();
  81. }
  82. DrawerLayout drawerLayout = (DrawerLayout)findViewById(R.id.drawerLayout);
  83. drawerLayout.closeDrawer(GravityCompat.START);
  84. return true;
  85. }
  86. }


效果:
                

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号