使用Google原生的DrawerLayout+ActionBar实现测滑

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- 内容区 -->
    <RelativeLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.zfy.appmarket.app.view.PagerTab
            android:id="@+id/pagerTab"
            android:layout_width="match_parent"
            android:layout_height="@dimen/pagertab_height"
            android:background="@drawable/bg_tab" />

        <android.support.v4.view.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/pagerTab" />
    </RelativeLayout>

    <!-- 侧拉菜单 -->
    <FrameLayout
        android:id="@+id/menu"
        android:layout_width="@dimen/menu_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@drawable/bg_tab" />

</android.support.v4.widget.DrawerLayout>
/**
     * DrawerLayout:Android自己提供的滑动菜单(后加入的布局在上面)
     * 注意:在上面的布局需要添加android:layout_gravity="start"
     */
    @Override
    protected void initView() {

        setContentView(R.layout.activity_main);
        pagerTab = (PagerTab) findViewById(R.id.pagerTab);
        viewPager= (ViewPager) findViewById(R.id.viewPager);
        drawerLayout=(DrawerLayout)findViewById(R.id.drawerLayout);
        menuLayout= (FrameLayout) findViewById(R.id.menu);

        /**
         * 设置DrawerLayout的拖动事件
         */
        drawerLayout.setDrawerListener(new MyDrawerListener());
        /**
         * 设置阴影
         */
        drawerLayout.setDrawerShadow(R.drawable.ic_drawer_shadow, GravityCompat.START);

        /**
         * 设置菜单项目
         */
        menuLayout.addView(new MenuHolder(this).getRootView());

        /**
         * 获取条目项
         */
        String[] tabs=getResources().getStringArray(R.array.tab_names);
        MainPagerAdapter pagerAdapter=new MainPagerAdapter(getSupportFragmentManager(),tabs);
        /**
         * 设置适配器
         */
        viewPager.setAdapter(pagerAdapter);
        /**
         * 绑定Tab和ViewPager
         */
        pagerTab.setViewPager(viewPager);
        /**
         * 设置ViewPager监听器
         */
        pagerTab.setOnPageChangeListener(this);
        /**
         * 首次运行默认加载第一页
         */
        viewPager.setCurrentItem(0);

    }

    @Override
    protected void initActionBar() {
        //获取ActionBar实例:注意是V7包的
        mActionBar=getSupportActionBar();
        //设置ActionBar的显示标题
        mActionBar.setTitle(R.string.app_name);
        //设置ActionBar的Icon
        mActionBar.setIcon(UIUtils.getDrawable(R.drawable.ic_launcher));
        //启用ActionBar的按钮
        mActionBar.setDisplayHomeAsUpEnabled(true);
        mActionBar.setDisplayShowHomeEnabled(true);

        /**
         * 来自V7包的ActionBarDrawerToggle(注意区分V4包的,构造函数参数不同)
         * 设置ActionBar的开关,绑定DrawerLayout和ActionBar
         *   参数一:当前Activity
         *   参数二:要绑定的DrawerLayout
         *   参数三:滑动菜单打开时的描述
         *   参数四:滑动菜单关闭时的描述
         */
        mActionBarDrawerToggle=new ActionBarDrawerToggle(MainActivity.this,drawerLayout,R.string.drawer_open,R.string.drawer_close);
        //设置同步开关状态,关联ActionBar和滑动菜单
        mActionBarDrawerToggle.syncState();
    }

实现ActionBar与DrawerLayout滑动绑定的监听

 /**
     * DrawerLayout的拖动事件:参数与ActionBarDrawerToggle完全一致,直接传递
     */
    private class MyDrawerListener implements DrawerLayout.DrawerListener {
        @Override
        public void onDrawerSlide(View drawerView, float slideOffset) {
            mActionBarDrawerToggle.onDrawerSlide(drawerView,slideOffset);
        }

        @Override
        public void onDrawerOpened(View drawerView) {
            mActionBarDrawerToggle.onDrawerOpened(drawerView);
        }

        @Override
        public void onDrawerClosed(View drawerView) {
            mActionBarDrawerToggle.onDrawerClosed(drawerView);
        }

        @Override
        public void onDrawerStateChanged(int newState) {
            mActionBarDrawerToggle.onDrawerStateChanged(newState);
        }
    }
时间: 2024-08-30 04:07:39

使用Google原生的DrawerLayout+ActionBar实现测滑的相关文章

[mediatek]修改google原生桌面的时钟显示格式

通过keyguardstatusview.java中可以看到,代码所采用的日期格式固定 观察者定义如下: private static class FormatChangeObserver extends ContentObserver { private WeakReference<ClockView> mClock; private Context mContext; public FormatChangeObserver(ClockView clock) { super(new Hand

Android Fingerprint系列之google原生界面

ENV: Anroid M 6.0 1. 录入指纹引导界面 2.指纹要求先设置密码或验证密码界面(已经添加安全密码) 3.引导用户寻找指纹传感器 4.录入指纹界面 5.指纹录入结束界面

解决jQuery ajax跨域问题,Google、IE、Firefox亲测有效

直接上最后的结果吧 JS: 1 $.ajax({ 2 type: "GET", 3 async: false, 4 crossDomain: true, 5 url: "www.test.com/TestHandler.ashx", 6 data: { Id: "1"}, 7 dataType: "jsonp", 8 jsonp: "callback", 9 jsonpCallback: "cal

Android 使用DrawerLayout高速实现側滑菜单

一.概述 DrawerLayout是一个能够方便的实现Android側滑菜单的组件,我近期开发的项目中也有一个側滑菜单的功能.于是DrawerLayout就派上用场了.假设你从未使用过DrawerLayout.那么本篇博客将使用一个简单的案例带你迅速掌握DrawerLayout的使用方法. 二.效果图 三.代码实现 主布局activity_main.xml <? xml version="1.0" encoding="utf-8"? > <Line

Android 原生 Android ActionBar

本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用"返回/向上"程序图标导航 演示四:Action View 显示 UI 组件 如果你想使用 ActionBarSherlock,那么最好先研习一下原生的 Android ActionBar.最近打算用 Android 自己写个 APP,用了三方库 ActionBarSherlock,我也是 Android

Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/18234477 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/actionbar.html Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用

Selenium2学习-042-Selenium3启动Firefox Version 48.x浏览器(ff 原生 geckodriver 诞生)

今天又被坑了一把,不知谁把 Slave 机的火狐浏览器版本升级为了 48 的版本,导致网页自动化测试脚本无法启动火狐的浏览器,相关的网页自动化脚本全线飘红(可惜不是股票,哈哈哈...),报版本不兼容的错误(当前 selenium-server 版本为 2.53.1,火狐升级后版本为 48.0.2). 查看了一下,发现 Selenium 3 也在众所期望中登场了,从其官网的更新历史可知其主要特性如下所示: 1.全面支持JDK8.毕竟JDK8是Oracle官方支持的版本,同时若想使用 java bi

Android学习笔记:ActionBar使用介绍

一.基本概念 最权威和官方的介绍请看google的api文档 http://developer.android.com/training/basics/actionbar/setting-up.html http://developer.android.com/guide/topics/ui/actionbar.html ActionBar故名思意,操作栏的含义,一般位于activity的顶部,可以放置文本标签,搜索框.按钮.图标等.是 Android3才支持的. 在eclipse创建一个默认的

【转】Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/18234477 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/actionbar.html Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用