DrawLayout侧拉

版权声明:叮叮叮!!!! https://blog.csdn.net/Xuexx_520/article/details/83187371
package com.example.xxx.day10_drawerlayout;

import android.app.Fragment;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;

import com.example.xxx.day10_drawerlayout.adapter.MFragmentAdapter;
import com.example.xxx.day10_drawerlayout.fragment.AFragment;
import com.example.xxx.day10_drawerlayout.fragment.BFragment;

import java.util.ArrayList;
/**
 * 1.完成项目XML布局,初始化控件
 *  a.根布局不再是LinerLayout,而是DrawerLayout
 *  b.写两个直接的子控件,LinerLayout,Fragment
 *  c.TabLayout(依赖)和VIewPager
 *
 * 2.初始化ActionBar和ToolBar一样的存在
 *  a.获取一个ActionBar对象
 *  b.给ActionBar设置图片
 *  C.ActionBar关联DrawerLayout
 *  d.DrawerLayout关联ActionBar
 *
 * 3.初始化VIewPager
 *  a.创建一个装Fragment的集合
 *  b.创建Fragment,把Fragment添加到容器中
 *  c.创建VIewPager的适配器写其逻辑
 *
 * 4.是两两之间相互关联
 * a.tabLayout创建指示器
 * b.TabLayout与VIewPager相关联
 * c.给TabLayout指示器设置文本
 */
public class MainActivity extends AppCompatActivity {
   private DrawerLayout drawerLayout;
   private ViewPager viewPager;
   private TabLayout tabLayout;
   private ActionBarDrawerToggle toggle;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化控件
        iniView();
        //初始化ActionBar
        intiActionBar();
        //初始化Viewpager
        initviewpager();
    }
    //初始ViewPager,Fragment
    private void initviewpager() {
         ArrayList<Fragment> list= new ArrayList<Fragment>();
         list.add(new AFragment());
         list.add(new BFragment());
         MFragmentAdapter adapter=new MFragmentAdapter(getFragmentManager(),list);
         viewPager.setAdapter(adapter);

        //tabLayout指示器有几个,创建几个
        tabLayout.addTab(tabLayout.newTab());
        tabLayout.addTab(tabLayout.newTab());
        //是tablayout和VIewPager
        tabLayout.setupWithViewPager(viewPager);
        //给TabLayout指示器设置文本,万物从0开始
        tabLayout.getTabAt(0).setText("新闻");
        tabLayout.getTabAt(1).setText("游戏");



    }

    //设置我点击左上角,能够弹出侧边菜单
    private void intiActionBar() {
        //获取一个ActionBar对象
        ActionBar actionBar=getSupportActionBar();
        //给左上角一张图片,4.0意思默认图片,给true就可以直接使用
        actionBar.setDisplayHomeAsUpEnabled(true);
        //有一类提供了绑定DrawerLayout功能
        toggle=new ActionBarDrawerToggle(this,drawerLayout,R.string.open,R.string.close);
        //DrawerLayout和ActionBar关联
        toggle.syncState();
        drawerLayout.addDrawerListener(toggle);
    }
    //设置左上角按钮具备点击事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(toggle.onOptionsItemSelected(item)){
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
   //初始化控件
    private void iniView() {
        drawerLayout = (DrawerLayout) findViewById(R.id.drawer);
        //打开手势滑动
        drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);

        viewPager= (ViewPager) findViewById(R.id.viewpager);
        tabLayout= (TabLayout) findViewById(R.id.tabs);



    }
}

监听抽屉打开关闭状态

   toggle=new ActionBarDrawerToggle(this,drawerLayout,R.string.open,R.string.close){
            @Override
            public void onDrawerClosed(View drawerView) {
                super.onDrawerClosed(drawerView);
                Log.i("draw", "抽屉关闭了 " );
            }

            @Override
            public void onDrawerOpened(View drawerView) {
                Log.i("draw", "抽屉打开了");
            }
        };

猜你喜欢

转载自blog.csdn.net/Xuexx_520/article/details/83187371