//布局代码
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"><LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"><android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"/><android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/></LinearLayout>
<!--次界面,也就是左边的界面,android:layout_gravity="start"-->
<fragment
class="com.sn.drawerlayout.NaviFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"/></android.support.v4.widget.DrawerLayout>
//找控件
private void initView() {
drawerLayout = findViewById(R.id.drawer_Layout);
viewPager = findViewById(R.id.viewPager);
tabLayout = findViewById(R.id.tab_layout);
//打开手势滑动
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNDEFINED);
}
//初始化ViewPager
private void initViewPager() {
ArrayList<Fragment> fragments = new ArrayList<>();
fragments.add(new Frag_one());
fragments.add(new Frag_two());
fragments.add(new Frag_three());
fragments.add(new Frag_four());
//设置适配器
FPAdapter adapter = new FPAdapter(getFragmentManager());
adapter.setMfragments(fragments);
viewPager.setAdapter(adapter);
//创建指示器
tabLayout.addTab(tabLayout.newTab());
tabLayout.addTab(tabLayout.newTab());
tabLayout.addTab(tabLayout.newTab());
tabLayout.addTab(tabLayout.newTab());
//tablayout与viewpager关联
tabLayout.setupWithViewPager(viewPager);
//创建指示器文本
tabLayout.getTabAt(0).setText("首页");
tabLayout.getTabAt(1).setText("附近");
tabLayout.getTabAt(2).setText("发现");
tabLayout.getTabAt(3).setText("我的");
}
//初始化ActionBar
private void initActionBar() {
//获取一个ActionBar
ActionBar actionBar = getSupportActionBar();
//给左上角一张图片 这里默认提供
actionBar.setDisplayHomeAsUpEnabled(true);
//这个类提供了绑定DrawerLayout的功能
toggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.open, R.string.close);
//drawerLayout和ActionBar关联
toggle.syncState();//同步状态
drawerLayout.addDrawerListener(toggle);
//drawerLayout 监听事件
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
Log.d("zjs","侧拉菜单打开了");
}
@Override
public void onDrawerClosed(View drawerView) {
Log.d("zjs","侧拉菜单关闭了");
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
}
//A.设置左上角按钮具备点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(toggle.onOptionsItemSelected(item)){
return true;
}
return super.onOptionsItemSelected(item);
}