android ——滑动菜单

DrawerLayout是一个拥有两个子控件的布局,第一个子控件是主屏幕中显示的内容,第二个子控件是滑动菜单中显示的内容:

 1 <android.support.v4.widget.DrawerLayout
 2     xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     android:id="@+id/drawer_layout"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     >
 8
 9     <FrameLayout
10         android:layout_width="match_parent"
11         android:layout_height="match_parent">
12
13         <android.support.v7.widget.Toolbar
14             android:id="@+id/toolbar"
15             android:layout_width="match_parent"
16             android:layout_height="?attr/actionBarSize"
17             android:background="?attr/colorPrimary"
18             android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
19             app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
20
21     </FrameLayout>
22     <TextView
23         android:layout_width="match_parent"
24         android:layout_height="match_parent"
25         android:layout_gravity="start"
26         android:text="这是一个菜单"
27         android:textSize="30sp"
28         android:background="#FFF"/>
29 </android.support.v4.widget.DrawerLayout>

要注意的地方是第二个子控件TextView的layout_gravity属性指定的是滑动菜单是在屏幕的左边还是右边,属性值使用right或者left,这里使用start表示根据系统语言进行判断。

这里的效果是这样:

然后在标题栏上加入一个导航按钮,点击导航按钮也能打开滑动菜单,具体实现原理是,标题栏左方本来就有一个叫作HomeAsup的按钮,它默认的图标是一个返回的箭头,含义是返回上一个活动,所以只需要将它显示出来,修改它的图标和点击事件即可。

具体java代码:

 1 public class MainActivity extends AppCompatActivity {
 2
 3     private DrawerLayout mDrawerLayout;
 4     @Override
 5     protected void onCreate(Bundle savedInstanceState) {
 6         super.onCreate(savedInstanceState);
 7         setContentView(R.layout.activity_main);
 8         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
 9         setSupportActionBar(toolbar);
10         mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
11         ActionBar actionBar = getSupportActionBar();
12         if(actionBar != null){
13             //让ActionBar的HomeAsUp按钮显示出来
14             actionBar.setDisplayHomeAsUpEnabled(true);
15             //改变HomeAsUp按钮的图标
16             actionBar.setHomeAsUpIndicator(R.drawable.ic_action_name);
17         }
18
19     }
20     ...
21     public boolean onOptionsItemSelected(MenuItem item){
22         switch (item.getItemId()){
23             case android.R.id.home:
24                 mDrawerLayout.openDrawer(GravityCompat.START);
25                 break;
26     ...
27             default:
28                 break;
29         }
30         return true;
31     }
32 }
时间: 2024-10-06 16:57:19

android ——滑动菜单的相关文章

Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效

本文首发于CSDN博客,转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8744400 之前我向大家介绍了史上最简单的滑动菜单的实现方式,相信大家都还记得.如果忘记了其中的实现原理或者还没看过的朋友,请先去看一遍之前的文章 Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现 ,因为我们今天要实现的滑动菜单框架也是基于同样的原理的. 之前的文章中在最后也提到了,如果是你的应用程序中有很多个Activity都需

Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现

本文首发于CSDN博客,转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8714621 人人客户端有一个特效还是挺吸引人的,在主界面手指向右滑动,就可以将菜单展示出来,而主界面会被隐藏大部分,但是仍有左侧的一小部分同菜单一起展示. 据说人人客户端的这个特效是从facebook客户端模仿来的,至于facebook是不是又从其它地方模仿来的就不得而知了.好,今天我们就一起来实现这个效果,总之我第一次看到这个特效是在人人客户端看到的,我

它们的定义android滑动菜单

在这里实现了两个滑动菜单效果,的拖放内容的第一部分,菜单拖出像这样的效果感觉,另一种是拖动内容.后面的内容固定菜单.我感觉有层次感的效果,如下面 第一种效果的代码实现例如以下: package com.tenghu.customsideslip.menu.view; import android.content.Context; import android.os.AsyncTask; import android.util.AttributeSet; import android.util.D

Android 滑动菜单SlidingMenu

首先我们看下面视图: 这种效果大家都不陌生,网上好多都说是仿人人网的,估计人家牛逼出来的早吧,我也参考了一一些例子,实现起来有三种方法,我下面简单介绍下: 方法一:其实就是对GestureDetector手势的应用及布局文件的设计. 布局文件main.xml    采用RelativeLayout布局. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&quo

Android滑动菜单

从网上的一些资料整理过来的,记录下来,希望能帮到跟我一样临时抱佛脚的童鞋.(*^__^*) . 先来个效果图 点击图片可显示查询菜单,互动也可以显示 隐藏菜单,主要是通过监听来动态的设置layout_left的宽度.就说这些吧 详细的请看附件的代码.

Android滑动菜单使用(MenuDrawer和SlidingMenu)

项目地址: https://github.com/gokhanakkurt/android-menudrawer https://github.com/jfeinstein10/SlidingMenu android-menudrawer用法: protected MenuDrawer mDrawer; /**传入当前activity的布局文件*/ protected void initMenu(int layoutmain) { mDrawer = MenuDrawer.attach(this

Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9671609 记得在很早之前,我写了一篇关于Android滑动菜单的文章,其中有一个朋友在评论中留言,希望我可以帮他将这个滑动菜单改成双向滑动的方式.当时也没想花太多时间,简单修改了一下就发给了他,结果没想到后来却有一大批的朋友都来问我要这份双向滑动菜单的代码.由于这份代码写得很不用心,我发了部分朋友之后实在不忍心继续发下去了,于是决定专门写一篇文章来介绍更好的Android双向滑

【转】Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9671609 记得在很早之前,我写了一篇关于Android滑动菜单的文章,其中有一个朋友在评论中留言,希望我可以帮他将这个滑动菜单改成双向滑动的方式.当时也没想花太多时间,简单修改了一下就发给了他,结果没想到后来却有一大批的朋友都来问我要这份双向滑动菜单的代码.由于这份代码写得很不用心,我发了部分朋友之后实在不忍心继续发下去了,于是决定专门写一篇文章来介绍更好的Android双向滑

Android 3D滑动菜单完全解析,实现推拉门式的立体特效

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/10471245 在上一篇文章中,我们学习了Camera的基本用法,并借助它们编写了一个例子,实现了类似于API Demos里的图片中轴旋转功能.不过那个例子的核心代码是来自于API Demos中带有的Rotate3dAnimation这个类,是它帮助我们完成了所有的三维旋转操作,所有Matrix和Camera相关的代码也是封装在这个类中. 这样说来的话,大家心里会不会痒痒的呢?虽然