直播平台源代码,顶部标签栏及内容列表的设计与实现
1、主页面添加ViewPager控件
activity_main.xml
<LinearLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!-- 翻页视图-->
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
2、创建适配器继承FragmentPagerAdapter
在适配器类中创建构造方法,传入FragmentManager对象及放入ViewPager的Fragment对象集合
MyAdapter.java
public class MyAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
public MyAdapter(@NonNull FragmentManager fm, List<Fragment> list) {
super(fm);
this.fragmentList=list;
}
//获取当前滑动到fragment对象
@NonNull
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
//获取fragment个数
@Override
public int getCount() {
return fragmentList.size();
}
}
3、为ViewPager对象设置适配器
准备Fragment集合
创建MyAdapter适配器
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=findViewById(R.id.viewpager);
//准备fragment集合
List<Fragment> list=new ArrayList<>();
list.add(new Fragment1());
list.add(new Fragment2());
list.add(new Fragment3());
//创建MyAdapter对象
MyAdapter myAdapter=new MyAdapter(getSupportFragmentManager(),list);
//设置Adapter
viewPager.setAdapter(myAdapter);
}
}
4、设置ViewPager监听
onPageScrolled()方法在页面滑动时调用,在滑动停止之前,会一直调用此方法,第一个参数为当前页面,即单机滑动的页面,第二个参数是当前页面偏移的百分比,第三个参数是当前页面便宜的像素的位置
onPageSelected()方法在页面滑动结束后调用,参数position是当前选中页面的位置
onPageScrollStateChanged()方法在页面滑动状态改变时调用,参数state有3个值;SCROLL_STATE_DRAGCING表示用户手指按在屏幕上并且开始拖动的状态、SCROLL_STATE_IDLE表示滑动动画做完的状态、SCROLL_STATE_SETTLING表示手指离开屏幕的状态。
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//页面滑动调用此方法
}
@Override
public void onPageSelected(int position) {
//滑动到某个页面调用此方法
Toast.makeText(MainActivity.this, "这是第"+(position+1)+"个fragment", Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrollStateChanged(int state) {
//页面滚动状态发生变化调用此方法
}
});
以上就是 直播平台源代码,顶部标签栏及内容列表的设计与实现,更多内容欢迎关注之后的文章
标签:栏及,标签,MyAdapter,list,滑动,android,源代码,public,页面 From: https://www.cnblogs.com/yunbaomengnan/p/16987179.html