ViewPager,RadioGroup,FragmentManager 详解 <五> Fragment,ViewPager 和ActionBar

Fragment FragmentManager和 viewpager实现android底部导航 立即下载

这个 ActionBar 是导航部分的内容,它可以设置导航的模式为tab的模式,可以添加tab到actionbar中

步骤如下:

0:正常的ViewPager 和Fragment的显示,

1:设置ActionBar

2:实现ActionBar和ViewPager的联动。


具体:

0:创建Fragment

1:创建布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/viewPager"></android.support.v4.view.ViewPager>
</RelativeLayout>

2:创建adatper,但是这里不用getPagerTitle了

package tech.androidstudio.actionbarviewpagerfragment;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.List;

/**
 * Created by Kodulf on 2016/3/14.
 */
public class ActionBarFragmentPagerAdapter extends FragmentPagerAdapter {
    List<Fragment> list;

    public ActionBarFragmentPagerAdapter(FragmentManager fm, List<Fragment> list) {
        super(fm);
        this.list = list;
    }

    @Override
    public Fragment getItem(int position) {
        return list.get(position);
    }

    @Override
    public int getCount() {
        return list.size();
    }
}

4:在MainActivity 里面实现联动,其中报错获取actionBar,获取Tab,等

package tech.androidstudio.actionbarviewpagerfragment;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements ActionBar.TabListener, ViewPager.OnPageChangeListener {

    private ActionBar mActionBar;
    private ViewPager mViewPager;
    private ActionBar.Tab mTab0;
    private ActionBar.Tab mTab1;
    private ActionBar.Tab mTab2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mViewPager = (ViewPager)findViewById(R.id.viewPager);
        List<Fragment> mList = new ArrayList<Fragment>();
        mList.add(new FristFragment());
        mList.add(new SecondFragment());
        mList.add(new ThirdFragment());
        ActionBarFragmentPagerAdapter adapter = new ActionBarFragmentPagerAdapter(getSupportFragmentManager(),mList);

        mViewPager.setAdapter(adapter);
        mViewPager.setOnPageChangeListener(this);

        //获取支持保重的 actionBar,
        mActionBar = getSupportActionBar();
        if(mActionBar !=null){
            //设置actionBar的导航模式为ActionBar.NAVIGATION_MODE_TABS
            //然后通过ActionBar.newTab()方法来获取 新的 Tab,然后设置tab的 文字和监听器。最后添加到ActionBar里去
            mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
            mTab0 = mActionBar.newTab();
            mTab0.setText("财经");
            mTab0.setTabListener(this);
            mActionBar.addTab(mTab0);

            mTab1 = mActionBar.newTab();
            mTab1.setText("体育");
            mTab1.setTabListener(this);
            mActionBar.addTab(mTab1);

            mTab2 = mActionBar.newTab();
            mTab2.setText("娱乐");
            mTab2.setTabListener(this);
            mActionBar.addTab(mTab2);

        }
    }

    //在 Tab的 回调方法 里面设置viewPager显示的页面
    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
            switch (tab.getPosition()){
                case 0:
                    mViewPager.setCurrentItem(0);
                    break;
                case 1:
                    mViewPager.setCurrentItem(1);
                    break;
                case 2:
                    mViewPager.setCurrentItem(2);
                    break;
            }
    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {

    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    //在ViewPager的 回调方法里面设置 actionbar应该显示的tab
    @Override
    public void onPageSelected(int position) {
        switch (position){
            case 0:
                mActionBar.selectTab(mTab0);
                break;
            case 1:
                mActionBar.selectTab(mTab1);
                break;
            case 2:
                mActionBar.selectTab(mTab2);
                break;
        }

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
}


ViewPager+RadioGroup+Fragment实现选项卡 使用ViewPager+RadioGroup+Fragment实现选项卡 立即下载

相关推荐

手把手教你用DCA1000EVM解析IWR6843毫米波雷达数据(附MATLAB代码)

本文提供了一份详尽的实战指南,手把手教你使用DCA1000EVM采集并解析TI毫米波雷达IWR6843的原始数据。内容涵盖硬件连接配置、mmWave Studio参数设置、LVDS数据流结构解析,并附有核心MATLAB代码,详细演示了从原始二进制文件到距离-速度谱的信号处理全链路,帮助开发者快速掌握数据解析与处理的关键步骤。

terraform7cloud的博客 227

Fragment 和 ViewPager 基础

Fragment 和 ViewPager 基础

Juey 684

倍福 MODBUS TCP/IP通信

(*默认字符串80字节,此处声明为255字节,可以一次性传42个UINT数据.5位整数加一个空格,即每个数据6字节*)(*---------------------------------------- 以下为用户程序 ----------------------------------------*)(*读回并换算后的值*)(*准备写到PLC的值*)(*用于比较两次读回的值相差多少,以估计通讯的速度, Act_CalcDiff*)(*用于切换读和写,Act_Protocal*)

qq_33280096的博客 1367

ViewPager和ViewPager+Fragment联合使用方法精炼详解

一、前期基础知识储备 使用了ViewPager, PagerSlidingTabStrip, SwipeRefreshLayout模仿Douban客户端的下拉刷新以及滑动的效果。 ViewPager—视图滑动切换工具——通过手势滑动可以完成View的切换,一般是用来做APP 的引导页或者实现图片轮播——意味着ViewPager中经常放的东西有两个:①图片,实现图片轮播器;②View视图,实现View 的切换,如应用启动页面。 ViewPager就是一个简单的页面切换组件,我们可以往里面填充多个Vi.

apple_4872330的专栏 1354

从零开始:H20服务器上DeepSeek R1 671B大模型部署与压力测试全攻略

最近,我有幸在工作中接触到了DeepSeek R1 671B模型,这是目前中文开源领域参数量最大的高质量模型之一。DeepSeek团队在2024年推出的这款模型,以其惊人的6710亿参数量和出色的推理性能,引起了业界广泛关注。作为一名AI基础设施工程师,我有机会在H20服务器上部署这个庞然大物,并对其进行了全面的压力测试。这篇文章将详细记录我的部署过程和性能测试方法,希望能为大家提供一些参考。💡为什么选择DeepSeek R1?超大规模参数量(671B)优秀的中英文理解能力开源可商用的许可证。

wangli的博客 1万+

程序设计二(面向对象)_实训10_复杂类的实现_ArrayList类的实现

第1关:构造函数与析构函数的实现

2401_83406306的博客 822

ViewPager嵌套fragment简单使用

最近在公司没有什么新的开发任务,就复习一下以前的知识,Android大多数应用都是ViewPager+fragment实现主页面的框架结构,今天就简单的介绍一下ViewPager和fragment的简单使用。 首先看一下activity的布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://s

yanglei0917的博客 3196

避坑指南:Xilinx SelectIO IP核官方例程里那些容易忽略的细节(复位、时钟与数据回环)

本文深入解析Xilinx SelectIO IP核设计中复位策略、时钟域交互和数据回环验证三大关键领域的实战避坑技巧。针对官方例程中易被忽视的细节,如复位同步链深度、时钟相位约束和数据对齐机制,提供经过项目验证的优化方案,帮助工程师节省80%以上的调试时间。特别适用于FPGA开发中高速接口设计场景。

weixin_42561476的博客 448

Fragment和ViewPager的介绍和使用

一、Fragment的介绍 在之前的学习和介绍中,已经介绍过Android中存在的碎片化的问题,并提出了一系列的适配方法和方案。为了解决碎片化的问题,在Android中提出了Fragement的概念,用于灵活适配不同的尺寸屏幕。 Fragment的英文单词的本意即是碎片、碎块、片段的意思,非常吻合Android中的碎片化概念。 具体来说,Fragment是Activity界面中的一部分,可理解为模块化的Activity。 特点 同Activity一样,依然来看一下Fragment有哪些特点: F

qfliweimin的博客 599

LVGL 拨盘菜单(Dial Menu)

h。

摸鱼专家 191

基于Simulink的无迹卡尔曼滤波(UKF)SOC高精度估计仿真

本文介绍了基于Simulink的无迹卡尔曼滤波(UKF)在电池SOC高精度估计中的应用。通过无迹变换替代传统EKF的线性化过程,UKF显著提升了SOC估计精度,在强非线性工况下误差可控制在0.5%以内。文章详细阐述了UKF的核心原理,包括Sigma点生成、状态预测和观测更新等关键步骤,并基于Thevenin等效电路模型构建了完整的UKF SOC估算系统。通过Simulink建模和仿真验证,展示了UKF在大电流脉冲、变温工况等复杂场景下的优异性能,其动态响应时间小于30ms,长期累积误差低于0.7%。研究为储

amy_mhd的博客 125

安卓基础之Fragment与ViewPager

viewPager与Fragment的组合方式是可以说是当前App开发的标配,所以放在一篇博客中进行描述。 Fragment Fragment是Acttivity界面一个组成部分,基本上目前使用到多个页面的情况下都会用到,其实Fragment最大的作用是分担Activity的代码压力,为了后期维护方便,不把所有的代码罗列到一个Activity中。 构建Fragment 1.Activity布局文件...

wygsqsj的博客 4154

IoU的进化之路——IoU、GIoU、DIoU、CIoU四种损失函数总结

IoU、GIoU、DIoU、CIoU四种损失函数总结

chase 8131

【Android笔记】ViewPager嵌套fragment

ViewPager嵌套Fragment 新建4个Fragment; 新建ViewPagerAdapter继承FragmentPagerAdapter; public class ViewpagerAdapter extends FragmentPagerAdapter { private ArrayList<Fragment> arrayList; public ViewpagerAdapter(@NonNull FragmentManager fm,ArrayLis

xiaokangss的博客 701

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

在fragment中使用viewpager嵌套fragment

步骤: 1、在Activity布局文件中定义framelayout用于添加Fragment 2、创建两个Fragment用于切换 3、获取Fragment管理器,并开启事物FragmentTransaction 4、通FragmentTransaction.add(resource id, fragment)将fragment添加到布局上,提交事物commit 5、通FragmentTransaction. replace(resource id, fragment)切换显示的fragment,提交事物co

xiaokangss的博客 1975

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Android之ViewPager总结(五)——使用Fragment实现ViewPager滑动

今天我们来看一看Google官方推荐的一种ViewPager实现方式:使用Fragment实现ViewPager。前面的篇幅中,我们 使用的是PagerAdapter,而现在我们要使用的是FragmentPagerAdapter。     废话不多说,我们看看官方是怎么解释的。 Implementation of PagerAdapter that represents ea

YangTinghui7的博客 577

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ViewPager+Fragment使用FragmentPageAdapter时app与v4下FragmentManager冲突的解决

问题: 在使用ViewPager+Fragment的时候,使用ViewPager提供的FragmentPageAdapter的时候,FragmentPageAdapter的FragmentManager参数必须是V4包下的,当项目里的FragmentManager是app下的时候,就会冲突。 原因: fragmentPagerAdapter是继承了PagerAdapter,该类为

u012756920的博客 2542

Android使用ActionBar和ViewPager切换页面

演示效果如下:  项目布局如下:    MainActivity.java代码 import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.F

xyjikl 530

Android ViewPager嵌套ViewPager+Fragment问题

最近在项目中又遇到了ViewPager互相嵌套的问题,代码实现很简单,主要可能出现的问题是子ViewPager的fragment滑动出现白屏,这个问题的出现是FragmentManager方法调用错误,android中涉及到FragmentManager的方法主要有:getChildFragmentManager()、getFragmentManager()和getSupportFragmentM...

仰望星空 6711

ViewPager,RadioGroup,FragmentManager 详解 <三> Fragment,ViewPager 和PagerTabStrip

0:首先创建Fragment, 1:创建布局,注意了 PagerTabStrip 是在ViewPager 里面的,而且PagerTabStrip 必须要是全路劲 xml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xm

Kodulf的专栏 778

ViewPager 从入门到带你撸个启动页之Fragment+ViewPager(二)

上一篇我们分享了ViewPager的基本用法后,相信大家对ViewPager的使用已经有比较清晰的认识了,这篇我们准备来使用官方推荐的Fragment+ViewPager组合来实现上一篇的效果。Fragment+ViewPager的基本用法1.FragmentPagerAdapter与FragmentStatePagerAdapter  当ViewPager与Fragment结合使用时,我们所需要使

zejian的博客 1万+

ViewPager刷新问题原理分析及解决方案(FragmentPagerAdapter+FragementStatePagerAdapter)...

Android开发中经常用到ViewPager+Fragment+Adapter的场景,一般每个Fragment控制自己的刷新,但是如果想要刷新整个ViewPager怎么做呢?或者想要将缓存的Fragent给重建怎么做呢?之前做业务的时候遇到一个问题,ViewPage在第二次setAdapter的如果用的是FragmentPager并不会导致页面刷新,但是采用FragementStatePager...

weixin_34258838的博客 546

支持 ViewPager 嵌套 Fragment 和 FragmentManager 管理 Fragment 两种情况的 Fragment 懒加载,Fragment 多层嵌套时也支持懒加载

LazyLoadFragment 项目地址:SheHuan/LazyLoadFragment 简介: 支持 ViewPager 嵌套 Fragment 和 FragmentManager 管理 Fragment 两种情况的 Fragment 懒加载,Fragment 多层嵌套时也支持懒加载! 更多:作者提 Bug 标签: Fragment 懒加载实现原理 ...

未来很长,但我会努力的走下去。 236

Android编程心得-使用ActionBar+Fragment+ViewPager实现动态切换Menu效果

1.首先上效果图 2.本例实现的效果主要适用于当前页面有多个页签时,进行Fragment切换时,可以利用不同的Menu样式与当前Fragment中的内容进行配合,可以大大增加复用性,看到效果图后,下面我来介绍我实现这一效果的主要步骤 2.1  因为此处我有3个样式,那么我需要在res/menu 文件夹下创建三个文件,style1.xml,style2.xml,style

xiao聪聪的技术Blog 1万+

Android RadioGroup+ViewPager+ActionBar实现仿微信6.0界面(底部滑动菜单栏+导航栏)

本文主要使用RadioGroup+ViewPager来实现滑动界面,使用ActionBar来实现顶部菜单栏。先上图(使用GifCam录制)。

Jimi_Wu的专栏 8312
上一篇: ViewPager,RadioGroup,FragmentManager 详解 <四> Fragment,ViewPager 和TabLayout
下一篇: 报错:The resource name must start with a letter
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值