GitHub上一款流行的侧滑,附上自己as编译过的源码 http://download.csdn.net/detail/lj419855402/8559039、

留个纪念,说不定以后用得到。

依赖一个lib

/** Copyright 2015 Rudson Lima** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at**     http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/
package br.liveo.ndrawer;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.util.SparseIntArray;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;import java.util.ArrayList;
import java.util.List;import br.liveo.interfaces.NavigationLiveoListener;
import br.liveo.navigationliveo.NavigationLiveo;public class MainActivity extends NavigationLiveo implements NavigationLiveoListener {public List<String> mListNameItem;@Overridepublic void onUserInformation() {//User information herethis.mUserName.setText("Rudson Lima");this.mUserEmail.setText("rudsonlive@gmail.com");this.mUserPhoto.setImageResource(R.drawable.lin);this.mUserBackground.setImageResource(R.drawable.ic_user_background);}@Overridepublic void onInt(Bundle savedInstanceState) {//Creation of the list items is here// set listener {required}this.setNavigationListener(this);// name of the list itemsmListNameItem = new ArrayList<>();mListNameItem.add(0, getString(R.string.inbox));mListNameItem.add(1, getString(R.string.starred));mListNameItem.add(2, getString(R.string.sent_mail));mListNameItem.add(3, getString(R.string.drafts));mListNameItem.add(4, getString(R.string.more_markers)); //This item will be a subHeadermListNameItem.add(5, getString(R.string.trash));mListNameItem.add(6, getString(R.string.spam));// icons list itemsList<Integer> mListIconItem = new ArrayList<>();mListIconItem.add(0, R.drawable.ic_inbox_black_24dp);mListIconItem.add(1, 0); //Item no icon set 0mListIconItem.add(2, 0); //Item no icon set 0mListIconItem.add(3, R.drawable.ic_drafts_black_24dp);mListIconItem.add(4, 0); //When the item is a subHeader the value of the icon 0mListIconItem.add(5, R.drawable.ic_delete_black_24dp);mListIconItem.add(6, R.drawable.ic_report_black_24dp);//{optional} - Among the names there is some subheader, you must indicate it hereList<Integer> mListHeaderItem = new ArrayList<>();mListHeaderItem.add(4);//{optional} - Among the names there is any item counter, you must indicate it (position) and the value hereSparseIntArray mSparseCounterItem = new SparseIntArray(); //indicate all items that have a countermSparseCounterItem.put(0, 7);mSparseCounterItem.put(6, 250);//If not please use the FooterDrawer use the setFooterVisible(boolean visible) method with value falsethis.setFooterInformationDrawer(R.string.settings, R.drawable.ic_settings_black_24dp);this.setNavigationAdapter(mListNameItem, mListIconItem, mListHeaderItem, mSparseCounterItem);}@Overridepublic void onItemClickNavigation(int position, int layoutContainerId) {FragmentManager mFragmentManager = getSupportFragmentManager();Fragment mFragment = new FragmentMain().newInstance(mListNameItem.get(position));if (mFragment != null){mFragmentManager.beginTransaction().replace(layoutContainerId, mFragment).commit();}}@Overridepublic void onPrepareOptionsMenuNavigation(Menu menu, int position, boolean visible) {//hide the menu when the navigation is opensswitch (position) {case 0:menu.findItem(R.id.menu_add).setVisible(!visible);menu.findItem(R.id.menu_search).setVisible(!visible);break;case 1:menu.findItem(R.id.menu_add).setVisible(!visible);menu.findItem(R.id.menu_search).setVisible(!visible);break;}}@Overridepublic void onClickUserPhotoNavigation(View v) {//user photo onClickToast.makeText(this, R.string.open_user_profile, Toast.LENGTH_SHORT).show();}@Overridepublic void onClickFooterItemNavigation(View v) {//footer onClickstartActivity(new Intent(this, SettingsActivity.class));}
}

  

效果,效果图

转载于:https://www.cnblogs.com/LIANQQ/p/4388447.html

Android nDrawer相关推荐

  1. Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程

    首先下载并安装安卓SDK和java的JDK 安卓sdk下载: http://www.android-studio.org/ 也可以在这下载: 链接:http://pan.baidu.com/s/1bp ...

  2. Android 的NDK的Makefile编写

    Android.mk 是google根据Linux GNU Makefile精简编译脚本.具体来说:这就是GNU Makefile的一小部分. 举一个简单例子: LOCAL_PATH := $(cal ...

  3. Android Animation (安卓动画)概念简介

    Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...

  4. 基于Android和SpringBoot的购物App

    (Shopping)购物应用商城 本软件使用Android和SpringBoot.JavaWeb技术实现:并结合百度LBS平台的SDK.支付宝App支付客户端SDK.MobTech的ShareSDK: ...

  5. Android数据持久化:SharePreference

    SharePreference:作为Android数据持久化的一种,具有一定的便捷性,适合存储一些体积小的数据. 存储数据方式:键值对的方式,类似于Map: 利用SharePreference.Edi ...

  6. Android数据持久化:文件存储

    数据持久化: 数据可分为瞬时数据和关键数据.保存在内存之中的数据是瞬时数据,而对于一些关键性数据,后期需要持续使用的,应当保存在存储设备中: 持久化保存方式: 文件存储.SharePreference ...

  7. Android Studio中RecycerView依赖库加载问题

    依赖包导入思考: 参考资料:recycleview导包问题 打开修改本项目中的build.gradle; 切勿着急添加包,应当提前查看其中的版本号(因为加载的v7包要和其版本保持一致性): 例如: 因 ...

  8. Android布局优化之include、merge、ViewStub

    include:引入重复使用的相同布局 merge:减少include布局的层级,将子元素直接添加到merge标签的parent中 ViewStub:其实就是一个宽高都为0的一个View,它默认是不可 ...

  9. Android动画之帧动画和补间动画

    Android系统提供三种动画:帧动画.补间动画和属性动画.这里先分析总结帧动画和补间动画. FrameAnimation 帧动画,通俗来说就是按照图片动作顺序依次播放来形成动画,创建帧动画可以用 x ...

最新文章

  1. 商汤再挖MSRA大将:R-FCN作者代季峰加盟任执行研究总监
  2. P1991 无线通讯网
  3. 彻底理解宽带信号在频域分解为窄带信号
  4. Prometheus 系统监控方案
  5. 移植U-BOOT之裁剪和修改默认参数(易用性)启动内核,以及对uboot进行分区
  6. 如何获取option的下标和值_数智化时代下,如何获取企业增长密码?
  7. HA集群实现原理 切换 JAVA_HA(一)高可用集群原理
  8. 语义网络分析图怎么做_怎么去分辨化工壶,光说可能大家还是会有疑惑,所以做了几个图...
  9. TensorFlow深度学习应用开发实战(深度学习简介和开发环境搭建)
  10. python 点_Python中的方括号和点符号有什么区别?
  11. fglrx 9.8与kernel 2.6.30
  12. 疑似荣耀30S将于今日正式官宣:首发搭载全新麒麟820芯片
  13. [jboss] 运行多个JBoss实例
  14. mysql存入中文乱码解决方法(windows环境)
  15. 文件搜索工具Listary中文版快速上手使用教程
  16. java中double类型占几个字节_Java基本数据类型占用字节数
  17. dell 服务器 重装Linux系统
  18. 低代码常见场景【上】|如何解决业务问题
  19. java基础-异常处理
  20. 常见ant命令及其用法

热门文章

  1. 分页存储管理和分段存储管理
  2. JavaScript 编程精解 中文第三版 十一、异步编程
  3. Android App截包工具
  4. Jquery ajax调用后台aspx后台文件方法(不是ashx)
  5. JavaScript定时调用函数(SetInterval与setTimeout)
  6. shell 学习笔记(18)
  7. 解决oracle ORA-01078,LRM-00109故障一例!
  8. 图解人工智能机器学习深度学习的关系和区别
  9. 《大型网站服务器容量规划》一2.1 什么是容量
  10. 【转】使用Core Graphics绘画一个山寨微信icon