Android 关于fragment切换

【控件篇】ViewPager+FragmentStatePagerAdapter 页面切换案例详解 很多APP在安装后第一次启动时都会出现一系列引导界面,用于介绍APP的主体功能。 这个实现这个引导界面的控件,就是本文要介绍的ViewPager控件 博主在工作中遇到一个问题,我们的APP中有一个用户下单的功能,但因为业务性质,下一个订单需要填写的信息非常多,手机一个屏幕的大小尚且未能全部装下。 这就导致了用户在使用我们的APP进行下单时,用户体验极其不友好。 ViewPager主要突出一 阅读详情

Android 关于fragment切换

在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment
但是,这样会有一个问题 ,应该很多朋友都遇到过:
每次切换的时候,Fragment都会重新实例化,也就是运行OnCreatVIew()方法
翻看了Android官方文档后,和一些组件的源代码,发现,replace()这个方法只是在上一个Fragment不再需要时采用的简便方法。

正确的切换方式是add(),切换时hide(),add()另一个Fragment;再次切换时,只需hide()当前,show()另一个。
这样就能做到多个Fragment切换不重新实例化:

    /**
     * 是否第一次
     */
    private boolean mIsFirstIn = true;

    /**
     * Fragment 切换
     * 
     * @param from
     *            隐藏的fragment
     * @param to
     *            显示的fragment
     * @param id
     *            {@code R.id.main} 加载到的布局
     */
    private void switchContent(Fragment from, Fragment to) {
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        if (!to.isAdded()) {
            // 先判断是否被add过
            if (mIsFirstIn) {
                mIsFirstIn = false;
                ft.add(R.id.main, to).commit();
            } else {
                ft.hide(from).add(R.id.main, to).commit(); // 隐藏当前的fragment,add下一个到Activity中
            }
        } else {
            ft.hide(from).show(to).commit(); // 隐藏当前的fragment,显示下一个
        }
    }

下面是一些国外的参考
Show hide fragment in android - Stack Overflow

Creating and Using Fragments

【notepad附加功能】Android使用fragment实现滑动切换界面 最后看一下学习需要的所有知识点的思维导图。在刚刚那份学习笔记里包含了下面知识点所有内容!文章里已经展示了部分!如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器! 阅读详情

相关推荐

Android 使用 TabLayout 切换 Fragment

Log.e(TAG, "onTabSelected: 暴击 " + tab.getText() + " 位置: " + index);Log.e(TAG, "Tab 释放,并且切换最后一次点击位置: " + index);android:theme="@style/ThemeOverlay.犀慕.FullscreenContainer"Log.d(TAG, "Tab 切换出错" + e.getMessage());android:text="通知" />android:text="审核" />

1377

Fragment切换的方式介绍和一些问题的解决

Fragment 切换 1. FragmentManager:用来管理Activity中的fragment,app包中使用getFragmentManager() v4包中getSupportFragmentManager 2. FragmentTransaction: 事务,用来添加,移除,替换fragment。 3. FragmentTransaction transaction = fm.benginTransatcion();//开启一个事务 4. transaction.add() :

zpeien 7127

Raptor码(一):2007RFC5053标准编解码学习

RFC 5053 标准

a_beatiful_knife的博客 3493

切换Fragment的方法

1 简单粗暴replace 该方法只是在上一个Fragment不再需要时采用的简便方法。 不需要类成员变量,每次替换掉当前的fragment,每次从零开始,不保存数据。 //切换不同的fragment private void replaceFragment(Fragment fragment) { FragmentManager manager = getSupportFragmentManager(); FragmentTransaction fra..

丰空岛主(Vega Prime,Android,LabWindows,ThreeJS,Python,OpenCV) 2965

方差分析ANOVA、T检验、卡方检验的区别

T检验和ANOVA都是用来看样本之间均值是否相等,但是两者又有什么区别呢? 卡方检验是用来看分类变量之间有没有相关性。 自变量X类型 自变量X组数 因变量Y类型 分析方法 离散(类别) 仅仅2组 连续(均值) t检验 离散(类别) 2组及以上 连续(均值) ANOVA 离散(类别) 2组及以上 离散(类别) 卡方检验 进一步细分 方差分析 从理论上讲,方差分析有两个前提条件,一是因变量Y需要满足正态性要求,二是满足方差齐检验。 方差不齐时可使用‘非参数检验’,同时还可使用wel

itslifeng的博客 4万+

SAP WM模块事务码(TCODE)大全

OL07 Data transfer stor.bins LDK34->RLPLA 仓储位LDK34 ->RLPLA

matinal 當冬夜漸暖 。公众号:matinal 5846

Fragment

这是关于fragment的面试题,基本上涵盖了90%的内容,有需要的朋友可以多看看,也欢迎大家指出我的不足,我会虚心接受。

Rosso_Wine的博客 541

Jupyter Lab 无法启动 Kernel 问题排查与解决总结

使用 curl,telnet,或 Python websocket-client 库可以本地模拟 WebSocket 握手行为,帮助分析服务端响应状态。避免使用 http:// + ws:// 组合方式部署 Jupyter Lab,特别是在远程或跨域访问场景。建议统一采用 https:// + wss:// 方式部署,确保浏览器信任并兼容。确认 WebSocket 已升级为 wss://,内核可正常启动。但在远程访问时,浏览器出于安全策略,默认拒绝 ws:// 协议。

weixin_43866043的博客 1857

Android Fragment滑动切换

1,因为要进行滑动,所以中文在布局中就进行ViewPager布局 <android.support.v4.view.ViewPagerandroid:id="@+...

binbinbintony的博客 297

【SAP HANA 24】HANA与Oracle SQL语法对照表

HANA SQL参考及Oracle 语法对照

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 1422

美的集团-数据挖掘工程师面试分享

美的集团-数据挖掘工程师面试分享

510

安卓Android开发,左边listView右边Fragment切换页面

安卓Android开发,左边listView右边Fragment切换页面

m0_63222566的博客 2262

人形机器人硬件电路设计入门

人形机器人属于。

blotemj.blog.youkuaiyun.com 229

android安卓 Fragment实现页面标题左右同步切换以及点击标题切换页面

效果图:不多说直接上代码,大家请看详细代码注释: productxq.java: package com.example.xh.twostylefragment; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support.v4.a...

qq_35595164的博客 1967

【ESP32设备通信】-LoRa通信

在本文中,我们将使用 Arduino IDE 将 ESP32 与 LoRa SX1278 (Ra-02) 模块连接起来。 我们将创建一个真实的示例项目,通过 LoRa 无线打开/关闭 LED 进行演示。

视觉与物联智能 1890

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

安卓开发之fragment切换

Fragment是一个灵活的用户界面组件,可以将Activity划分为多个独立的界面,类似小型activity,也具有自己的生命周期和布局。

qq_52175613的博客 1187

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android fragment 底部菜单栏,安卓开发-底部导航栏切换Fragment进行显示

内容纲要底部导航栏切换Fragment进行显示创建Fragment对象通常会有多个Fragment用于切换用Fragment[] fragments保存为集合private FrameLayout frame_home;private Fragment[] fragments;private HomeFragment homeFragment;private int lastfragment = ...

weixin_29053695的博客 555

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

安卓Fragment实现碎片切换

安卓Fragment实现碎片切换

hollow_future的博客 1251

安卓笔记android fragment在viewpager中的使用和屏幕切换的状态保存等

@by moses      fragment在viewpager中的使用注意项: email: donmoses1989@gmail.com 一、在普通activity 的布局中使用fragment ,  开启事务后, 判断fragment是否为空,如果为空则向事务中添加该fragment, 如果不为空,则使用事务.show(该fragment)。

DonMoses的专栏 1761

android fragment页面切换,Android中通过Fragment进行简单的页面切换

首先是activity中的布局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=".M...

weixin_31292909的博客 1532

android 怎么代码切换fragment,android 切换fragment的两种方式

使用add方法切换时:载入Fragment1Fragment1 onCreateFragment1 onCreateViewFragment1 onStartFragment1 onResume用以下代码切到Fragment2:FragmentTransactionft =getFragmentManager().beginTransaction();ft.hide(Fragment1);ft.a...

weixin_31708613的博客 1050

android fragment切换,Android——使用Fragment实现窗口切换

1.Fragment是什么?碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。虽然碎片对你来说应该是个全新的概念,但我相信你学习起来应该毫不费力,因为它和活动实在是太像了,同样都能包含布局,同样都有自己的生命周期。你甚至可以将碎片理解成一个迷你型的活动,虽然这个迷你型的活动有可能和普通的活动是一样大的。2.Fragm...

weixin_29193359的博客 1488

android fragment切换

android fragment切换 1、调用方式 xml布局 <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/frame_layout" ></FrameLa...

wodecc_u的博客 508

android:ViewPager配合Fragment实现页面切换

首先看下代码效果: 我们希望达到的效果是,点击上方的标题其背景颜色改变,同时底下的内容跟着改变。这是利用安卓的ViewPager和Fragment实现的。上方是LinearLayout中包含三个TextView,下面是ViewPager 我们对LinearLayout中的三个子控件进行监听实现切换ViewPager。 而ViewPager的内容我们利用FragmentPagerAdapt...

一个程序员-二白的博客 1万+

Android开发,在Activity中切换不同的Fragment

本文主要实现在同一个Activity中,实现某一个容器的Fragment的切换。 首先是主Activity的xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/forget_pass_layout" android:layout_width=

Stanny_Bing的博客 2796
上一篇: Activity被回收导致fragment的getActivity为null的解决办法
下一篇: AndroidStudio 缓存文件夹配置
YLBF_DEV
博客等级 码龄12年 30粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值