侧滑菜单用法记录
来源:互联网 发布:淘宝同学 编辑:程序博客网 时间:2024/06/03 17:28
使用actionBar实现侧滑菜单
actionBar侧滑菜单是谷歌官方的模版,有着很多限制比如图标固定,菜单样式固定,但是如果只是实现简单的侧滑菜单,使用这个还是不错的。
使用5.0兼容库 选择file>project Structure>module(自己开发module)>Dependencies>点击右上角+号>LibraryDependency>选择com.android.support:design:25.1.0
1、首先实现布局页面
<?xml version="1.0" encoding="utf-8"?><!--菜单布局--><android.support.v4.widget.DrawerLayout 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:id="@+id/activity_sliding_menu" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="主界面"/> </LinearLayout> <android.support.design.widget.NavigationView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" app:headerLayout="@layout/nav_head_layout" app:menu="@menu/nav_menu_list"> </android.support.design.widget.NavigationView></android.support.v4.widget.DrawerLayout>
布局写好后在 android.support.design.widget.NavigationView 控件下 需要添加2个属性分别对应2个布局文件。app:menu=”@menu/nav_menu_list”>需要填充布局作为侧滑的滑出页面布局代码如下(注意这里是xml文件,并且需要在‘src>main>res’文件夹下新建‘menu’文件夹然后再新建xml文件)
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <!--创建子菜单--> <group android:id="@+id/group01" > <item android:id="@+id/string1" android:icon="@mipmap/ic_launcher" android:title="我是菜单1" ></item> <item android:icon="@mipmap/ic_launcher" android:title="我是菜单2" ></item> </group> <group android:id="@+id/group02" > <item android:icon="@mipmap/ic_launcher" android:title="我是菜单A" ></item> <item android:icon="@mipmap/ic_launcher" android:title="我是菜单B" > <menu> <item android:title="B的子菜单"></item> </menu> </item> </group></menu>
上面的group标签是给侧滑菜单下的菜单添加子菜单的注意只有在添加id的情况下才可以看见效果。app:headerLayout=”@layout/nav_head_layout” 布局文件代码如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:background="@drawable/ic_user_background" android:layout_height="150dp"> <ImageView android:id="@+id/iv_head_layout_icon" android:layout_margin="10dp" android:layout_width="48dp" android:src="@drawable/ic_account_circle_white_48dp" android:layout_height="48dp"/> <TextView android:layout_margin="10dp" android:layout_width="wrap_content" android:text="点击登陆" android:textColor="#FFF" android:layout_height="wrap_content"/></LinearLayout>
布局写好后,在activity写开始写逻辑
package com.example.newdatas.androidBase;import android.os.Bundle;import android.support.annotation.NonNull;import android.support.design.widget.NavigationView;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.view.MenuItem;import android.widget.Toast;import com.example.newdatas.R;import butterknife.Bind;import butterknife.ButterKnife;public class SlidingMenu extends AppCompatActivity { @Bind(R.id.activity_sliding_menu) DrawerLayout mActivitySlidingMenu; @Bind(R.id.NavigationView) NavigationView mNavigationView; private ActionBarDrawerToggle mActionBarDrawerToggle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sliding_menu); ButterKnife.bind(this);// 初始化actionbar initActionBar(); //设置Navigation的点击事件 mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.string1: Toast.makeText(SlidingMenu.this, "ssss", Toast.LENGTH_SHORT).show(); break; } return true; } }); } private void initActionBar() {// 拿到actionbar ActionBar supportActionBar = getSupportActionBar();// 设置标题 supportActionBar.setTitle("标题");// 显示箭头 固定写法 显示并且可以先显示 supportActionBar.setDefaultDisplayHomeAsUpEnabled(true); supportActionBar.setDisplayHomeAsUpEnabled(true);// 显示汉堡箭头// 菜单开关对象 mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mActivitySlidingMenu, R.string.open, R.string.a);// 进行同步 mActionBarDrawerToggle.syncState();// 设置点击事件 mActivitySlidingMenu.addDrawerListener(mActionBarDrawerToggle); }// 设置点击事件// slelct// 复写方法ctrl+a @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {// 箭头对象 case android.R.id.home:// 拿到菜单箭头对象 mActionBarDrawerToggle.onOptionsItemSelected(item); break; } return super.onOptionsItemSelected(item); }}
最后完成后的样子
0 0
- 侧滑菜单用法记录
- 侧滑菜单DrawerLayout的用法
- Android:SlidingMenu(侧滑菜单)用法示例
- Android侧滑菜单之DrawerLayout用法详解
- 侧拉菜单SlidingMenu的用法
- Android开发全程记录(三)——侧滑菜单的实现
- Android Scroller的用法详解并完成ListView侧滑菜单
- 抽屉菜单与侧滑菜单. NavigationView
- 横滑菜单和侧拉菜单
- 右键菜单用法
- MTK矩阵菜单用法
- Menu菜单用法!
- [MFC]菜单CMenu用法
- ExpandableListView二级菜单用法
- 侧滑菜单
- PopUpWindow 侧滑菜单
- SlidingMenu(侧滑菜单)
- 自定义侧滑菜单
- 软件上线标准
- 求局部峰值
- ffmpeg推本地视频到rtmp服务器
- MVP第一个小demo
- 【AJAX】ASP.NET AJAX小结(一)
- 侧滑菜单用法记录
- Centos 7 Samba安装配置
- POJ 3894 System Engineer 已被翻译
- HTTP严格安全传输(HTTP Strict Transport Security, HSTS)chromuim实现源码分析(一)
- Pat.Basic level.1005.继续(3n+1)猜想
- 2017
- [str函数] -- str_replace
- 【Unity&摄像机&2.5D】在2.5D游戏项目中,不同精灵要分层显示怎么办
- jQuery Mobile-页面跳转