效果图:

Step1:首先在color.xml中添加常用颜色

<color name="red">#FF0000</color>
<color name="white">#FFFFFF</color>
<color name="gray">#A9A9A9</color>

接下来编写我们的页面布局activity_main.xml。

Step2:添加一个Toolbar

使用Toolbar代替ActionBar需要将android :theme设置为NoActionBar,我们到AndroidManifest.xml文件中看到

android:theme="@style/AppTheme"

所以我们到styles.xml中去修改AppTheme

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

接着便直接在主布局中添加一个toolbar控件

<androidx.appcompat.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="@color/red"app:titleTextColor="@color/white"><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:text="English News"android:textColor="@color/white"android:textSize="30sp"android:gravity="center"/></androidx.appcompat.widget.Toolbar>

在Toolbar中添加一个TextView是因为直接在Toolbar中添加text只能居左显示,所以我们添加一个textview让他能够居中显示;

layout_height="?attr/actionBarSize"表示Toolbar完全覆盖ActionBar

Step3:在主布局中添加TabLayout和ViewPager控件

<com.google.android.material.tabs.TabLayoutandroid:id="@+id/tabLayout"android:layout_width="match_parent"android:layout_height="40dp"app:tabTextColor="@color/gray"app:tabSelectedTextColor="@color/red"app:tabMode="fixed"app:tabGravity="fill"></com.google.android.material.tabs.TabLayout><androidx.viewpager.widget.ViewPagerandroid:id="@+id/viewPager"android:layout_width="match_parent"android:layout_height="wrap_content"></androidx.viewpager.widget.ViewPager>

tabMode="fixed"表示所有tab平分宽度,不可滑动

tabGravity="fill"表示tab中的文字居中显示

Step4:新建需要的几个Fragment类以及对应的布局文件

public class RecommendFrag extends Fragment {public View onCreateView(LayoutInflater inflater, ViewGroup viewGroup, Bundle bundle){View view = inflater.inflate(R.layout.frag_recommend, viewGroup, false);TextView tv_recommend = (TextView) view.findViewById(R.id.tv_recommend);Log.e("HEHE","recommend");return view;}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/tv_recommend"android:layout_width="match_parent"android:layout_height="match_parent"android:text="To to ot not to do, that's a question.1"android:gravity="center"android:textSize="30dp"/></LinearLayout>

Step5:开始编写MainActivity

private androidx.appcompat.widget.Toolbar toolbar;private TabLayout tabLayout;private ViewPager viewPager;private List<Fragment> fragmentList;private String[] titles = {"推荐","世界","体育","商业","生活","评论"};private MyPagerAdapter adapter;

我们需要自建一个适配器MyPagerAdapter

class MyPagerAdapter extends FragmentPagerAdapter{public MyPagerAdapter(FragmentManager fm) {super(fm);}public CharSequence getPageTitle(int position){return titles[position];}@Overridepublic Fragment getItem(int position) {return fragmentList.get(position);}@Overridepublic int getCount() {return titles.length;}}

编写onCreate()方法

toolbar = findViewById(R.id.toolbar);tabLayout = findViewById(R.id.tabLayout);viewPager = findViewById(R.id.viewPager);fragmentList = new ArrayList<>();fragmentList.add(new RecommendFrag());fragmentList.add(new WorldFrag());fragmentList.add(new SportFrag());fragmentList.add(new BusinessFrag());fragmentList.add(new LifeFrag());fragmentList.add(new CommentFrag());adapter = new MyPagerAdapter(getSupportFragmentManager());viewPager.addOnPageChangeListener(new TabLayoutOnPageChangeListener(tabLayout));viewPager.setAdapter(adapter);tabLayout.setupWithViewPager(viewPager);

英语新闻app——TagLayout+ViewPager+Fragment实现分类切页功能相关推荐

  1. Kotlin + AndroidX + Tablayout + ViewPager + Fragment 实现Tab切页

    1.前沿 Google已经受够了V4,V7包的各种冲突.所以直接不再维护V4,V7包了.以后就统一使用AndroidX. 2.gradle配置: 除了原有的androidX的库,还需要使用materi ...

  2. 安卓开发之使用viewpager+fragment实现滚动tab页

    闲着.用viewpager+fragment实现了个滚动tab..轻拍,以后会陆续发先小东西出来..爱分享,才快乐.demo见附件.. Java代码   package com.example.dem ...

  3. 用 Python selenium爬取股票新闻并存入mysql数据库中带翻页功能demo可下载

    用 Python selenium爬取实时股票新闻并存入mysql数据库中 1.分析需求 2.创建表 3.分析需要爬取的网页内容 4.python里面selenium进行爬虫操作 1.添加包 2.连接 ...

  4. ViewPager + Fragment实现滑动标签页

    ViewPager 结合Fragment实现一个Activity里包含多个可滑动的标签页,每个标签页可以有独立的布局及响应. activity_main.xml [html] view plainco ...

  5. Android小项目——新闻APP

    前言: 在公司学习了一段时间Android知识,决定做一个小项目,目的是学会运用所学的基础知识,在这里记录一下开发历程,大家可以把它看成一款入门级练手的 Demo 应用吧~ 项目概述: 类型: 新闻A ...

  6. Android实现一个简易的新闻列表APP(TabLayout+ViewPager+Fragment)

    Android实现一个简易的新闻列表APP(TabLayout+ViewPager+Fragment) 文章目录 Android实现一个简易的新闻列表APP(TabLayout+ViewPager+F ...

  7. 仿网易新闻APP(五)——无限横向滑动菜单(自定义HorizontalScrollView+ViewPager)

    自从Gallery被谷歌废弃以后,Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的效果.的确HorizontalScrollView可以实现Gal ...

  8. android fragment界面滑动切换效果,Android App中使用ViewPager+Fragment实现滑动切换效果...

    在android应用中,多屏滑动是一种很常见的风格,没有采用viewpager的代码实现会很长,如果采用ViewPager,代码就会短很多,但是使用ViewPager也有弊端:需要导入android- ...

  9. bbc新闻app Android,英语基础不好也可以看BBC新闻背单词

    原标题:英语基础不好也可以看BBC新闻背单词 估计大家刚刚开始学英文的时候也跟我一样单纯.很积极地上了BBC新闻的网站,想的是可以边看新闻,边学英文,结果一开始看就蒙了,一句话都没听懂,就放弃了,又回 ...

最新文章

  1. delphi socket 流的使用_基于TCP协议的Socket编程和通信_单向通信
  2. 【 Linux 】通用的vim简单配置方法
  3. nlopt 二次优化
  4. UVA12325Zombie's Treasure Chest 宝箱
  5. 制作Slider组件
  6. 设计模式----Adapter(适配器)
  7. 前轮转向最大角度设计原来_五桥转向故障
  8. 蓝桥杯2016年第七届JavaC组国赛第一题-平方末尾
  9. labview入门系列2
  10. LYNC 2010 中文测试版已经可以下载
  11. python的cubes怎么使用_Python measure.marching_cubes方法代碼示例
  12. docker容器的时间问题
  13. 微信扫描下载apk解决方案
  14. Windows系统的Chrome 调试运行在 IOS-safari (iPad/iPhone)上的页面
  15. 夕阳落山图(js 夕阳下山)
  16. 生于80年代需读的80本书
  17. Optiver宣布成立主要战略投资团队
  18. linux的桌面卸载了怎么恢复,桌面应用|如何通过简单的3步恢复Windows 7同时删除Ubuntu...
  19. ubantu 添加防火墙策略_ubuntu防火墙设置
  20. 我的世界基岩版开服教程Nukkit篇

热门文章

  1. (转)Limboy:自学 iOS 开发的一些经验
  2. 三极管的检测及其管脚的判别
  3. 直流无刷电机发热问题及解决方案
  4. ae无法连接ame_怎么我的AE无法连接media encoder?如何解决AE链接不了media encoder的问题?求教谢谢...
  5. 深度学习之NN(Neural Network)
  6. Windows系统增强优化工具
  7. allure安装与使用
  8. 深入理解矩阵的特征值和特征向量
  9. Project Euler:Problem 53 Combinatoric selections
  10. 全网变灰白,网站变黑白,网站首页变灰白,黑白