欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android5.0 旋转菜单实例详解

程序员文章站 2024-02-24 09:36:52
先给大家展示下效果图: 这个效果是安卓5.0推出 “材料设计” ui效果 以前一直没留意到,写篇文章当成备忘录 上面的效果图 用 drawerlayout和tool...

先给大家展示下效果图:

Android5.0 旋转菜单实例详解

这个效果是安卓5.0推出 “材料设计” ui效果 以前一直没留意到,写篇文章当成备忘录

上面的效果图 用 drawerlayout和toolbar实现

布局如下

<?xml version="1.0" encoding="utf-8"?>
<linearlayout 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"
  android:background="#fff0ff"
  android:orientation="vertical"
  tools:context="a.fmy.com.myapplication.mainactivity">
<!--标题栏-->
  <android.support.v7.widget.toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorprimary"
    android:minheight="?attr/actionbarsize" />
  <android.support.v4.widget.drawerlayout
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#0ff"
   >
    <!--内容-->
    <linearlayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:background="#ff0"></linearlayout>
    <!--菜单-->
    <linearlayout
      android:layout_width="200dp"
      android:layout_height="match_parent"
      android:layout_gravity="start"
      android:background="#f0f" />
  </android.support.v4.widget.drawerlayout>
</linearlayout>

activity 代码

public class mainactivity extends appcompatactivity {
  private toolbar toobar;
  private actionbardrawertoggle actionbardrawertoggle;
  private drawerlayout drawerlayout;
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
    toobar = (toolbar) findviewbyid(r.id.toolbar);
    //设置toobar为标题栏
    setsupportactionbar(toobar);
    //设置显示旋转菜单
    getsupportactionbar().setdisplayhomeasupenabled(true);
    //抽屉布局
    drawerlayout = ((drawerlayout) findviewbyid(r.id.activity_main));
    //activitybar开关
    actionbardrawertoggle = new actionbardrawertoggle(this, drawerlayout, r.string.app_name, r.string.app_name);
    //同步开关 如果不写的话, 滑动开关 按钮一直就一个状态 不会变化
    actionbardrawertoggle.syncstate();
    //添加监听
    drawerlayout.adddrawerlistener(actionbardrawertoggle);
  }
  @override
  public boolean onoptionsitemselected(menuitem item) {
    //这里是让用户点击按钮的时候可以打开抽屉
    return actionbardrawertoggle.onoptionsitemselected(item)
        || super.onoptionsitemselected(item);
  }
}