原创 android之ViewPager与TabLayout

2021-6-17 11:39 615 4 4 分类: 软件与OS 文集: android studio

使用 TabLayout 很容易实现选项卡的功能。这里将结合 ViewPagerFragmentTabLayout实现一个具有选项卡功能的程序。本例再上篇讲解的ViewPagerFragment实例上修改,请结合上篇实例参考。

要实现这样一个程序,首先需要在布局文件中加入 TabLayoutMainActivity中对应的布局文件代码如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:orientation="vertical"
  8. tools:context=".MainActivity">
  9. <com.google.android.material.tabs.TabLayout
  10. android:id="@+id/tab"
  11. app:tabMode="fixed"
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content" />
  14. <androidx.viewpager.widget.ViewPager
  15. android:id="@+id/viewPager"
  16. android:layout_width="match_parent"
  17. android:layout_height="match_parent"/>
  18. </LinearLayout>

完成这些后,3Fragment类文件不变,修改适配器类:

  1. package com.rfstar.viewpagertest03;
  2. import androidx.fragment.app.Fragment;
  3. import androidx.fragment.app.FragmentManager;
  4. import androidx.fragment.app.FragmentPagerAdapter;
  5. import java.util.List;
  6. public class FragmentAdapter extends FragmentPagerAdapter {
  7. private List<Fragment> fragmentList;
  8. private List<String> tabList;
  9. public FragmentAdapter(FragmentManager fm,List<Fragment>fragmentList,List<String>tabList)
  10. {
  11. super(fm);
  12. this.fragmentList=fragmentList;
  13. this.tabList=tabList;
  14. }
  15. @Override
  16. public Fragment getItem(int position) {
  17. return fragmentList.get(position);
  18. }
  19. @Override
  20. public int getCount() {
  21. return fragmentList.size();
  22. }
  23. @Override
  24. public CharSequence getPageTitle(int position)
  25. {
  26. return tabList.get(position);
  27. }
  28. }

通过观察修改之后的适配器类可以发现其实就是加入了一个存储选项卡内容的列表以及一个获取选项卡内容的方法。MainActivity的代码如下:

  1. package com.rfstar.viewpagertest03;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import androidx.fragment.app.Fragment;
  4. import androidx.fragment.app.FragmentManager;
  5. import androidx.viewpager.widget.ViewPager;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.widget.TableLayout;
  9. import com.google.android.material.tabs.TabLayout;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. public class MainActivity extends AppCompatActivity {
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main);
  17. FragmentManager fragmentManager=getSupportFragmentManager();
  18. List<Fragment> fragments=new ArrayList<Fragment>();
  19. fragments.add(new FirstFragment());
  20. fragments.add(new SecondFragment());
  21. fragments.add(new ThirdFragment());
  22. List<String> tabs=new ArrayList<>();
  23. tabs.add("首页");
  24. tabs.add("社区");
  25. tabs.add("新闻");
  26. FragmentAdapter fragmentAdapter=new
  27. FragmentAdapter(fragmentManager,fragments,tabs);
  28. ViewPager viewPager=(ViewPager)findViewById(R.id.viewPager);
  29. viewPager.setAdapter(fragmentAdapter);
  30. TabLayout tabLayout= (TabLayout) findViewById(R.id.tab);
  31. tabLayout.setupWithViewPager(viewPager);
  32. }
  33. }

此时运行程序就出现了选项卡功能,不管是点击选项卡标签还是滑动界面都可以进行界面切换,效果如

android studio工具及手机模拟器以及更多工程源代码下载请前往微信公众号:大鸟科创空间,回复:android studio即可获取。

作者: 大鸟科创空间, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3949041.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
相关推荐阅读
大鸟科创空间 2021-07-26 17:01
SQLite操作的核心类 SQLiteDatabase 与 SQLiteOpenHelper
在 Android 中,操作SQLite主要依靠SQLiteDatabase与 SQLiteOpenHelper 这两个类,其中 SQLiteDatabase 是用于执行数据库操作的类,SQLiteO...
大鸟科创空间 2021-07-22 16:18
Android之文件存储
利用 SharedPreferences 来保存数据固然有其简单轻便的优势,但是当数据较大时使用 SharedPreferences 就不合适了,此时一般选择使用文件存储。 在应用私有文件夹中读写数据...
大鸟科创空间 2021-06-16 14:15
android中ViewPager 与 Fragment
在实际的开发过程中,ViewPager 与 Fragment 组合使用是比较常见的,而对于 fragment,它所使用的适配器是FragmentPagerAdapter。FragmentPagerAd...
大鸟科创空间 2021-06-11 13:15
android之ViewPager的使用
ViewPager是一个非常强大的 UI组件,应用非常广泛。它提供了多界面切换的效果,具体来说就是∶当前显示一组界面中的一个界面,当用户左右滑动界面时,当前的屏幕显示当前界面和下一个界面的一部分,滑动...
大鸟科创空间 2021-06-02 17:14
继承 BaseAdapter 自定义 Adapter 来实现 ListView
其实 SimpleAdapter 适配器已经能够满足很多情况了,但是由于它的一些缺陷,实际上在开发中使用最多、最广泛的还是通过继承 BaseAdapter 自定义 Adapter 的方式来实现List...
广告
我要评论
0
4
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /4 下一条