Drawelayout+TabLayout+ViewPager
阿新 • • 發佈:2018-11-08
.activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <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> <fragment class="com.example.drawelayoutdemo.NaviFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start"></fragment> </android.support.v4.widget.DrawerLayout>
.MainActivity
package com.example.drawelayoutdemo; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; 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.os.Bundle; import android.view.MenuItem; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private DrawerLayout mDrawerLayout; private ViewPager mViewPager; private TabLayout mTabLayout; private ActionBarDrawerToggle mToggle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iniView(); intiActionBar(); initVIewPager(); } private void iniView() { mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mViewPager = (ViewPager) findViewById(R.id.vp); mTabLayout = (TabLayout) findViewById(R.id.tab_layout); mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); } private void intiActionBar() { ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close); mToggle.syncState(); mDrawerLayout.addDrawerListener(mToggle); } @Override public boolean onOptionsItemSelected(MenuItem item) { if(mToggle.onOptionsItemSelected(item)){ return true; } return super.onOptionsItemSelected(item); } private void initVIewPager() { ArrayList<Fragment> fragments = new ArrayList<>(); fragments.add(new AFragment()); fragments.add(new BFragment()); MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager()); adapter.setFragments(fragments); mViewPager.setAdapter(adapter); mTabLayout.addTab(mTabLayout.newTab()); mTabLayout.addTab(mTabLayout.newTab()); mTabLayout.setupWithViewPager(mViewPager); mTabLayout.getTabAt(0).setText("AAA"); mTabLayout.getTabAt(1).setText("BBB"); } }
.MyPageAdapter
package com.example.drawelayoutdemo; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import java.util.ArrayList; import java.util.List; class MyPagerAdapter extends FragmentPagerAdapter { private List<Fragment> mFragments; public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment fragment = mFragments.get(position); return fragment; } @Override public int getCount() { return mFragments.size(); } public void setFragments(ArrayList<Fragment> fragments) { mFragments = fragments; } }
在這裡插入程式碼片