简单新闻框架DrawerLayoyt实现

xiaoxiao2021-02-28  87

1.首先导入依赖  Design包  认准了com.android.support:design:26.0.0-alpha1

2.xml  这里的fragment里的gravity 是粘贴进去的  需要手写

start代表向左   end  代表向右 

<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.administrator.frame.MainActivity"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.TabLayout android:id="@+id/tab" 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.administrator.frame.Fragment_SlidingMenu_left" android:layout_gravity="start" android:layout_width="match_parent" android:layout_height="match_parent"/> </android.support.v4.widget.DrawerLayout> 3. 创建三个Fragment  其中一个是

Fragment_SlidingMenu_left这个是侧滑向左用到的 另外俩个则是主页用到的。

4.自定义FragmentPagerAdapter适配器

public class MyAdapter extends FragmentPagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } private List<Fragment> list; public void setFragList(List<Fragment> list1){ this.list=list1; } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } } 5.MainActivity  注意:mtab.addtab  这个方法 在适配数据之前写 不然不会均分屏幕  

public class MainActivity extends AppCompatActivity { private TabLayout mTab; private ViewPager mVp; private DrawerLayout mDrawerLayout; private ActionBarDrawerToggle toggle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化 找控件等 initView(); //初始化 ActionBar initActionBar(); //初始化 ViewPager initViewPager(); } private void initViewPager() { //先准备数据 List<Fragment> list=new ArrayList<>(); Fragment_Picture fragment_picture = new Fragment_Picture(); Fragment_Video fragment_video = new Fragment_Video(); list.add(fragment_picture); list.add(fragment_video); //创建适配器 MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager()); //放入数据 myAdapter.setFragList(list); //mTab 设置 标题 mTab.addTab(mTab.newTab()); //因为只有2Fragment 所以建俩个就行 mTab.addTab(mTab.newTab()); //适配 mVp.setAdapter(myAdapter); //设置文本 mTab.getTabAt(0).setText("图片"); mTab.getTabAt(1).setText("视频"); } private void initActionBar() { ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true);//设置出来图片可点击 //ActionBarDrawerLayout的联动 toggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close); //同步状态 toggle.syncState(); //添加监听 mDrawerLayout.addDrawerListener(toggle); } private void initView() { mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mTab = (TabLayout) findViewById(R.id.tab); mVp = (ViewPager) findViewById(R.id.vp); //ViewPager TabLayout先关联起来 mTab.setupWithViewPager(mVp); } @Override public boolean onOptionsItemSelected(MenuItem item) { if(toggle.onOptionsItemSelected(item)){ return true; } return super.onOptionsItemSelected(item); } }

xxx

转载请注明原文地址: https://www.6miu.com/read-84999.html

最新回复(0)