标签:
<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); } }
使用Google原生的DrawerLayout+ActionBar实现测滑
标签:
原文地址:http://www.cnblogs.com/zfy0526/p/4434254.html