简单Fragment+Tablayout+ViewPage实现底部和顶部滑动(菜单栏)

简单Fragment+Tablayout+ViewPage实现底部和顶部滑动(菜单栏),第1张

1.TabLayout的使用需要借助Android Design包,所以我们需要在 build.gradle中引入design包:

implementation 'com.android.support:design:27.1.1'

2.将activity_main布局

例如:第一页

例如:第一页

}

}

}

ViewPager+Fragment要实现顶部标题栏,需要以下几个步骤:

1.首先在activity_main.xml布局文件中加入ViewPager组件

<android.support.v4.view.ViewPager

       android:id="@+id/viewpager"

       android:layout_width="match_parent"

       android:layout_height="match_parent">

2.既然要实现左右的页面滑动,肯定要往ViewPager中添加一些Fragment,这里创建了3个Fragment的布局文件

这3个布局文件非常简单,跟Activity的布局用法一模一样,代码就不贴出来了,直接看Activity的java代码

import java.util.ArrayList

import java.util.List

import android.os.Bundle

import android.app.Activity

import android.support.v4.app.Fragment

import android.support.v4.app.FragmentActivity

import android.support.v4.app.FragmentManager

import android.support.v4.app.FragmentPagerAdapter

import android.support.v4.app.FragmentStatePagerAdapter

import android.support.v4.view.PagerTabStrip

import android.support.v4.view.PagerTitleStrip

import android.support.v4.view.ViewPager

import android.util.Log

import android.view.ViewGroup

public class MainActivity extends FragmentActivity {

private ViewPager m_vp

private fragment1 mfragment1

private fragment2 mfragment2

private fragment3 mfragment3

private ArrayList<Fragment>fragmentList

ArrayList<String>  titleList    = new ArrayList<String>()

private PagerTabStrip pagerTabStrip

private PagerTitleStrip pagerTitleStrip

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

m_vp = (ViewPager)findViewById(R.id.viewpager)

pagerTabStrip=(PagerTabStrip) findViewById(R.id.pagertab)

//设置下划线的颜色

pagerTabStrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_green_dark))

//设置背景的颜色

pagerTabStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_dark))

// pagerTitleStrip=(PagerTitleStrip) findViewById(R.id.pagertab)

// //设置背景的颜色  pagerTitleStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_dark))

mfragment1 = new fragment1()

mfragment2 = new fragment2()

mfragment3 = new fragment3()

fragmentList = new ArrayList<Fragment>()

fragmentList.add(mfragment1)

fragmentList.add(mfragment2)

fragmentList.add(mfragment3)

   titleList.add("第一页 ")

   titleList.add("第二页")

   titleList.add("第三页 ")

m_vp.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager()))

}

public class MyViewPagerAdapter extends FragmentPagerAdapter{

public MyViewPagerAdapter(FragmentManager fm) {

super(fm)

// TODO Auto-generated constructor stub

}

@Override

public Fragment getItem(int arg0) {

return fragmentList.get(arg0)

}

@Override

public int getCount() {

return fragmentList.size()

}

@Override

public CharSequence getPageTitle(int position) {

// TODO Auto-generated method stub

return titleList.get(position)

}

}

}

3.需要设置一个Adapter,上面代码是继承了FragmentPagerAdapter,在里面重写了3个方法.往这个Viewpager中添加了要显示的3个页面fragment和对应的3个标题

4.Fragment中有个onCreateView方法,返回的是这个fragment的视图View,其他的生命周期方法都跟Activity一样,还要注意的是在回复View前一定要加入代码

5.运行程序运行效果:

关于Viewpager和Fragment还有很多其他很有用的方法,建议查看官网API详细了解


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/8016239.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存