使用Toolbar + DrawerLayout+RecyclerView实现侧滑菜单栏(一)
来源:互联网 发布:淘宝旗袍销量第一名 编辑:程序博客网 时间:2024/06/06 03:47
前言
开发的工程中想要使用第三方的侧滑菜单栏,偶然发现Google提供的API便使用一番,发现设计倒是巧妙,便来此与各位同友分享使用心得。
准备
- Android Studio 2.2 Preview 6
- Gradle添加依赖
compile 'com.android.support:appcompat-v7:24.1.0'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha4' - 使用Android提供的模板生成简单的侧滑菜单项目
代码分析
通过删减无用的代码,只对重要的部分进行开发,代码基本功能比较简单,就不进行赘述了
MainActivity.java主要代码
import android.os.Bundle;import android.support.v4.view.GravityCompat;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.ActionBarDrawerToggle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawer.addDrawerListener(toggle); toggle.syncState(); } @Override public void onBackPressed() { DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); if (drawer.isDrawerOpen(GravityCompat.START)) { drawer.closeDrawer(GravityCompat.START); } else { super.onBackPressed(); } }}
activity_main.xml主要代码
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:openDrawer="start" > <include layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" /></android.support.v4.widget.DrawerLayout>
app_bar_main.xml主要代码
<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="com.example.myapplication.MainActivity" > <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_main" /></android.support.design.widget.CoordinatorLayout>
content_main.xml主要代码
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout android:id="@+id/content_main" 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" tools:context="com.example.myapplication.MainActivity" tools:showIn="@layout/app_bar_main" ></android.support.constraint.ConstraintLayout>
nav_header_main.xml主要代码
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout android:id="@+id/content_main" 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" tools:context="com.example.myapplication.MainActivity" tools:showIn="@layout/app_bar_main" ></android.support.constraint.ConstraintLayout>
结果
这样就实现了简单的侧滑菜单栏^_^
0 1
- 使用Toolbar + DrawerLayout+RecyclerView实现侧滑菜单栏(一)
- 使用DrawerLayout+Toolbar实现侧滑菜单
- Toolbar + DrawerLayout实现侧滑
- 侧滑菜单栏使用DrawerLayout和NavigationView实现
- Android:使用Toolbar + DrawerLayout快速实现菜单侧滑
- 使用Toolbar + DrawerLayout快速实现菜单侧滑
- 使用Toolbar与DrawerLayout实现侧滑菜单
- DrawerLayout,Toolbar,NavigationView实现侧滑的基本使用
- Toolbar,DrawerLayout,PagerSlidingTabStrip,AndroidImageSlider,RecyclerView结合使用
- Android DrawerLayout 实现侧滑菜单栏
- NavigationView和DrawerLayout实现侧滑菜单栏
- 侧滑菜单的简单实现(DrawerLayout+Toolbar+NavigationView)
- Toolbar + drawerlayout 实现侧滑菜单
- NavigationView+Drawerlayout+Toolbar实现侧滑菜单
- 使用Toolbar + DrawerLayout实现侧滑和改变toolbar左边按钮颜色
- Android 侧滑菜单(DrawerLayout+ToolBar的使用)
- Android中DrawerLayout+Toolbar实现侧滑效果[DrawerLayout+ToolBar+NavigationView]
- Material Design之NavigationView和DrawerLayout实现侧滑菜单栏
- android通知公告栏,textview滚动显示上网实现
- 面向对象的三个基本特征
- 深入理解Spring4框架(五)——作用域
- spark高级数据分析---网络流量异常检测(升级实战)
- inotify使用说明
- 使用Toolbar + DrawerLayout+RecyclerView实现侧滑菜单栏(一)
- 【每日算法】C语言8大经典排序算法(2)
- VectorDrawable与AnimatedVectorDrawable
- 比较新的模式识别相关源码
- UVA 11426 - GCD - Extreme (II) GCD性质例题
- Asp.net C#页面传参的几种方式
- 线段树总结
- hdu 5749 Colmerauer
- 前端基本功—CSS 实战第二天