首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发之Fragment回退栈

Android开发之Fragment动态使用一文,说到replace方法切换Fragment,会造成Fragment不断销毁、创建,但是有没有办法实现像Activity一样通过栈方式来管理Fragment...一、Fragment回退栈 Activity切换,相信大家都知道是通过栈形式,不断压栈出栈,Fragment时候,如果你不是手动开启回退栈,它是直接销毁再重建,但如果将Fragment任务添加到回退栈...有一个按钮,可以回退到Fragment2 2、Activity,初始化添加Fragment1,但不添加回退栈 Fragment1 f1 = new Fragment1(); FragmentTransaction...(); 4、Fragment2按钮事件 //回退到Fragment1 FragmentManager fm = getFragmentManager(); //将当前事务退出回退栈 fm.popBackStack...回退栈 init.PNG 此时是正常resume,Fragment1启动并显示 (2)Fragment1 ——> Fragment2 ?

1.1K40
您找到你想要的搜索结果了吗?
是的
没有找到

【约束布局】使用 Design 模式编辑 ConstraintLayout 约束布局 ( 添加 Guideline 引导线 | 添加 FragmentContainerView )

文章目录 一、使用 Design 模式编辑 ConstraintLayout 约束布局 1、添加 Guideline 引导线 2、添加 Fragment1 3、添加 Fragment2 一、使用 Design...; 1、添加 Guideline 引导线 向 约束布局 添加一条 Guideline 引导线 , 点击 布局 Guidelines 按钮 , 弹出 下拉菜单 , 选择 Horizontal...Guideline 水平引导线 , 此时在下方界面 , 就会出现一条 Guideline 引导线 , 默认显示单位是 像素 , 双击左侧三角按钮 , 就可以切换 像素值 / 百分比 显示..., 百分比显示效果如下 : 将其拖动到 50% 处 , 该 Guideline 引导线作为 Fragment 分割线 , 同时 Fragment 底部可以依赖该引导线 ; 2、添加 Fragment1...拖动到界面上半部分 , 拖动鼠标松开 , 会弹出对话框 , 让我们选择要插入那个 Fragment , 之前创建了两个 Fragment , 分别是 Fragment1 Fragment2 这里先插入

98510

Android开发:Fragment不同操作生命周期

切换Fragment有两种方式,一种是add新,并把旧hide,另一种是replace. 旧Fragment为Fragment1,新Fragment2,忽略非关键生命周期。...使用add方法切换: 载入Fragment1 Fragment1 onCreate Fragment1 onCreateView Fragment1 onStart Fragment1 onResume...隐藏并不会走onDestoryView,所以显示也不会走onCreateView,所有View都一直保存在内存。...因为我需要在用户看见/看不见Fragmentregister和unregister BroadcastReceiver之类东西(onHiddenChanged也能实现,但第一次载入显示,以及销毁不会走...看了ApiDemo,发现也是用replace方法,但是,我少了一行: ft.addToBackStack(null); replace加上这行,可以把原来Fragment放入栈,走onDestoryView

63820

《Android基础:Fragment,看这篇就够了》

我们可以FragmentonAttach()通过getArguments()获得传进来参数,并在之后使用这些参数。...Activity添加Fragment方式有两种: 静态添加:xml通过 方式添加,缺点是一旦添加就不能在运行时删除。 动态添加:运行时添加,这种方式比较灵活,因此建议使用这种方式。...1、当点击F1按钮,调用replace()替换为F2,且不加addToBackStack(),日志如下: Fragment2: [onAttach] BEGIN Fragment2: [onAttach...2、当点击F1按钮,调用replace()替换为F2,且加addToBackStack(),日志如下: Fragment2: [onAttach] BEGIN Fragment2: [onAttach...功能如下:共有三个Fragment:F1, F2, F3,F1初始化时就加入Activity,点击F1按钮跳转到F2,点击F2按钮跳转到F3,点击F3按钮回退到F1。

3.8K61

Android开发之Fragment动态使用

Android开发之奇怪Fragment 一文,讲到了Fragment基础知识,这次来重点讨论一下Fragment动态使用。...这种情况主要针对布局文件中用占位符,Activity中进行切换Fragment情况,分为两种: 1、使用replace方法把原有的Fragment替换掉; 2、使用hide和show方法,把已经添加过...使用场景:如果被替换Fragment无须再次使用,可以使用replace方法。 ---- 2、使用hide和show方法,把已经添加过Fragment隐藏或显示出来。...hideAndShow oneTtwo.PNG (3)Fragment2 ——>Fragment1,不打印任何生命周期 (4)再次Fragment1 ——>Fragment2,不打印任何生命周期 使用场景...:如果Fragment需要重用或者不断切换,可以使用该方法提高性能。

56970

Android Fragment完全解析,关于碎片你所需知道一切

但是Activity也有它局限性,同样界面在手机上显示可能很好看,平板上就未必了,因为平板屏幕非常大,手机界面放在平板上可能会有过分被拉长、控件间距过大等情况。...Fragment通常是嵌套在Activity中使用,现在想象这种场景:有两个Fragment,Fragment 1包含了一个ListView,每行显示一本书标题。...如果现在程序运行竖屏模式平板或手机上,Fragment 1可能嵌入一个Activity,而Fragment 2可能嵌入另一个Activity,如下图所示: ?...如果你是使用模拟器运行,按下ctrl + F11切换到竖屏模式。效果如下图所示: ?...我们可以看到,fragment2成功获取到了fragment1视图,并弹出Toast。这是怎么实现呢?主要都是通过getActivity这个方法实现

98390

Android开发使用Activity嵌套多个Fragment实现横竖屏切换功能方法

本文实例讲述了Android开发使用Activity嵌套多个Fragment实现横竖屏切换功能方法。分享给大家供大家参考,具体如下: 一、上图 ? ?...(一)先说说我走过弯路,将横竖屏切换一个Activity实现。 (1)、一个Activity实现横竖屏切换什么地方呢?...最复杂地方是,首次横竖屏切换,ActivityonDestory()方法会执行,执行此方法之前,FragmentonDestoryView()首先会获得执行,接着会执行onCreateView...(二)可取办法,将横竖屏切换两个Activity实现 三、解决问题思路 1、首先当然是要让两个Activity能够横竖切,这里首先需要在AndroidManifest.xml配置两个Activity...那么现在面临一个问题是什么,这个跳转写在什么地方,写在onDestory()方法显然是不合适,因为这个方法横竖切时候会始终执行,当你在按回退键返回到上一个页面,同样会执行这个方法,这样跳转的话

2.7K20

Android Fragment完全解析

但是Activity也有它局限性,同样界面在手机上显示可能很好看,平板上就未必了,因为平板屏幕非常大,手机界面放在平板上可能会有过分被拉长、控件间距过大等情况。...Fragment通常是嵌套在Activity中使用,现在想象这种场景:有两个Fragment,Fragment 1包含了一个ListView,每行显示一本书标题。...如果现在程序运行竖屏模式平板或手机上,Fragment 1可能嵌入一个Activity,而Fragment 2可能嵌入另一个Activity,如下图所示: ?...如果你是使用模拟器运行,按下ctrl + F11切换到竖屏模式。效果如下图所示: ?...我们可以看到,fragment2成功获取到了fragment1视图,并弹出Toast。这是怎么实现呢?主要都是通过getActivity这个方法实现

76490

安卓动态添加碎片

新建一个类Fragment1.java,继承自Fragment,注意Fragment有两个不同包,推荐使用support-v4,兼容性更好,另一个安卓4.2以下就会崩溃。...虽然碎片都是嵌入活动显示,但他们之间关系并不明显。     1.活动调用碎片方法。...2.碎片中调用活动方法。可以通过getActivity()方法得到和当前碎片绑定活动实例。 碎片绑定 静态绑定 活动布局中加一个碎片标签,比较简单不细说。...,程序运行时动态添加到碎片中,根据具体情况来动态添加碎片,可以将程序界面定制得更加多样化(多用于自适应手机和平板应用) 下面的代码以点击按钮。...有三个碎片,通过点击事件一个活动动态切换显示碎片。

86920

Carson带你学Android:手把手教你优雅实现首页-底部Tab导航(菜单栏)

ViewPager 定义 ViewPager是android扩展包v4包类 android.support.v4.view.ViewPager 作用 左右切换当前view,实现滑动切换效果。...Fragment 定义 Fragment是activity界面一部分或一种行为 1.把Fragment认为模块化一段activity 2.它具有自己生命周期,接收它自己事件,并可以activity...运行时被添加或删除 3.Fragment不能独立存在,它必须嵌入activity,而且Fragment生命周期直接受所在activity影响。...作用 主要是为了支持更动态、更灵活界面设计(从3.0开始引入) 具体使用请参考我写另外一篇文章Android开发:Fragment介绍&使用方法解析 实现步骤 主xml布局里面定义一个FragmentTabHost...Fragment1(); Fragment2 fragment2 = new Fragment2(); list.add(fragment1); list.add

84230

ViewPager+ Fragment结合setUserVisibleHint()调用时机

最近项目使用到了ViewPager + Fragment模式,要求每次Fragment获取显示时候来刷新数据,该项目下ViewPager有5个子fragment,onCreateView及fragment...从fragment1切换fragment2fragment2被选中,打印如下: 从1--->2 setUserVisibleHint 3 false setUserVisibleHint 1 false...setUserVisibleHint 2 true onCreateView 3 创建了fragment3,且fragment2setUserVisibleHint参数为true 3.从fragment2...3 true onDestroyView 1 onCreateView 4 创建了fragment4,销毁了fragment1,且fragment3setUserVisibleHint参数为true...会调用参数为truesetUserVisibleHint方法,被选中fragment与相邻fragment状态肯定是onCreate状态(如果create就调用onCreateView,如果已经是

1.6K30

Fragment基本使用

方式添加,由于内存紧张导致Fragment被系统杀掉并恢复(re-instantiate)能保留这些数据 可以FragmentonAttach()通过getArguments()获得传进来参数...onRestoreInstanceState()onStart()之后,onResume()之前,因此避免出现该异常方案有: 不要把Fragment事务放在异步线程回调 逼不得已使用commitAllowingStateLoss...如果你将Fragment任务添加到回退栈,当用户点击后退按钮,将看到上一次保存Fragment。...Fragment与Activity通信交互如上图所示: 如果Activity包含自己管理Fragment引用,可以通过引用直接访问所有的Fragmentpublic方法 如果Activity保存任何...A,调用Fragment B,通过newInstance函数获取实例并传递参数: public class Fragment1 extends Fragment { @Override

1.9K30

fragment动态创建

一个商业软件,会有很多界面,如果没一个界面对应一个activity,那么activity会非常多,清单文件也会非常乱,谷歌android3.0以后引入了新概念叫fragment fragment...无需清单文件配置,轻量级activity,在所属activity布局文件中进行配置 布局文件中使用fragment控件 添加节点,设置名称是fragment指向类全路径...,右边fragment内容随之变化,用户体验更好 动态创建 实现,当用户竖着拿手机显示一个界面,当横着拿显示另外一个界面 判断当前手机朝向,通过屏幕宽度和高度对比来实现 调用getWindowManager...对象commit()方法,提交事务 模拟器ctrl+f11切换横竖屏 MainActivity.java package com.tsh.myfragment; import android.app.Activity...f1 = new Fragment1(); Fragment2 f2 = new Fragment2(); // 判断横竖屏 int width = getWindowManager

2.1K40

首页-底部Tab导航(菜单栏)实现:FragmentTabHost+ViewPager+Fragment

ViewPager - 定义 ViewPager是android扩展包v4包类 android.support.v4.view.ViewPager 作用 左右切换当前view,实现滑动切换效果...,接收它自己事件,并可以activity运行时被添加或删除 3.Fragment不能独立存在,它必须嵌入activity,而且Fragment生命周期直接受所在activity影响...作用 主要是为了支持更动态、更灵活界面设计(从3.0开始引入) 具体使用请参考我写另外一篇文章Android开发:Fragment介绍&使用方法解析 底部菜单栏实现步骤 主xml布局里面定义一个...),然后实现TabHost里面图片文字选中状态切换*/ /*简单来说,是为了当点击下面菜单,上面的ViewPager能滑动到对应Fragment*/ mTabHost.setOnTabChangedListener...Fragment1(); Fragment2 fragment2 = new Fragment2(); list.add(fragment1); list.add

1.8K20

Android开源框架SlidingFragment使用示例

* * 用于填充侧滑菜单数据 * * OnItemClickListener:listview里边点击事件 * * @author xuliugen * */ public class...SlidingFragmentActivity,然后实现一般步骤如下: * * 1.得到滑动菜单 * * 2.设置滑动菜单是左边还是右边出来 * * 3.设置滑动菜单出来之后,内容页,显示剩余宽度...setContentView(R.layout.content);// 这里是动态加载页面 // 设置content内容初始值 Fragment1 fragment1 = new Fragment1...SlidingMenu.LEFT); // 3.设置滑动菜单出来之后,内容页,显示剩余宽度 slidingMenu.setBehindWidthRes(R.dimen.slidingmenu_offset...R.id.menu_frag .commit();// 提交 } /** * 方法回调:MenuFragment类中进行调用 * 暴露替换帧布局内容操作 * @param fragment */

39510

Android开发之ViewPager+Fragment+FragmentTabHost实现底部菜单

Android开发,底部菜单是经常要使用,如微信、微博、支付宝等,实现底部菜单有好几种方式,大致分为: 通过TabWidget实现 隐藏TabWidget,通过RadioGroup和RadioButton...mTabHost; // layoutInflater private LayoutInflater layoutInflater; // imageViewArray数组,用于显示底部菜单...fragment1 = new Fragment1(); Fragment2 fragment2 = new Fragment2(); Fragment3 fragment3...R.drawable.selector_tab_background); } }); FragmentTabHost实现setOnTabChangedListener,目的是当点击了下面的菜单,...如果要求内容不需要滑动,如微信、支付宝那种,只有底部点击切换Fragment功能,那么只需要将Activity布局ViewPager换成一个FrameLayout占位,然后程序替换Fragment

1.3K40
领券