Fragment.onViewCreated()是在Fragment.onCreateView()函数之后调用的,调用到它时 表明fragment视图层级结构已创建完毕.在onViewCreated()函数里观察LiveData可以保证"展示crime的视图已经准备完毕",这也解释了为什么你传给observe()函数的不是fragment自身, 而是viewLifecycleOwner.只有你的fragment视图处于有效状态--还在屏幕上, 你才需要接受crime更新. overri…
中断里调用HAL_Delay()进入死循环的原因  摘自:http://blog.csdn.net/alwxkxk/article/details/47204677 CUBE生成的程序中, SysTick是中断型延时(利用中断来查询时间到了没). /* Use systick as time base source and configure 1ms tick (default clock after Reset is MSI) */ HAL_InitTick(TICK_INT_PRIORITY…
1监控ul的li的变化情况,并实时输出li的长度 布局: <ul id="isSelected"></ul> <span id="modal-select-pile"></span> js代码如下: $('#isSelected').bind('DOMSubtreeModified', function() { var selectedNum=$("#isSelected li").length;…
在oneActivity中实现跳转到MainActivity //intent 用来跳转另外一个MainActivity,bundle传值到MainActivity         Intent MainActivity = new Intent();         MainActivity .setClass(this,MainActivity.class);         Bundle bundle = new Bundle(); //该类用作携带数据             bundl…
一.前言 为了解决Android-App开发以来一直存在的架构设计混乱的问题,谷歌推出了Jetpack-MVVM的全家桶解决方案.作为整个解决方案的核心-LiveData,以其生命周期安全,内存安全等优点,甚至有逐步取代EventBus,RxJava作为Android端状态分发组件的趋势. 官网商城app团队在深度使用LiveData的过程中,也遇到了一些困难,尤其是在LiveData的观察者使用上踩到了不少坑,我们把这些经验在这里做一次总结与分享. 二.Observer到底可以接收多少次回调…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录LiveDataLiveData 简介LiveData 功能概览LiveData 的优点LiveData 使用步骤TransformationsmapswitchMapMediatorLiveDataViewModel基本介绍适用场景ViewModel 的 onCleared 调…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录Fragment 知识点总结FragmentActivity 简介Fragment 和 Activity 的通讯使用静态 FragmentFragmentManager简介带 RecyclerView 的 Fragment 模板代码子 Fragment 的 onActivityR…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录生命周期标准的生命周期与事务相关的生命周期为什么 add 之前需要判断是否为null测试事务相关的生命周期的案例FragmentTransaction全部方法几个常用API的区别添加移除显示隐藏方法addremovereplaceshow 和 hideattach 和 detac…
有一段时间没有写博客了.作为2017年的第一篇,初衷起始于前段时间一个接触安卓开发还不算太长时间的朋友聊到的一个问题: "假设,想要对一个Fragment每次在隐藏/显示之间做状态切换时进行监听, 从而在这个时候去完毕一些操作,应该怎么去实现呢?" 相信大家听到这类问题第一反应都会认为是非常easy的.而又经过一番讨论过后,发现他的问题场景相对来说比較特殊一点的是: 其想要监听的Fragment是嵌套在还有一层Fragment内的子Fragment. 这就更有趣了一点,当然了.这个需求…
一.LiveData 介绍 LiveData是 Google 推荐的 Android 架构组件之一,是一个基于观察者模式的数据容器,但与一般的被观察者不同的是,它是有生命周期感知功能,解决了Android开发者需要去手动处理生命周期的痛点. 它具备如下特点: ① 数据可以被观察者订阅. ② 能够感知组件(Fragment.Activity.Service)的生命周期. ③ 只有当组件处于活跃状态(STARTED或RESUMED)时才会通知观察者数据发生了变化. 官方对其优点说明概括如下: ① U…
嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 getChildFragmentManager() 来获取FragmentManger. 虽然看起来和在activity中添加fragment差不多, 但因为fragment生命周期及管理恢复模式不同, 其中有一些需要特别注意的地方. 本文内容还包括了从Fragment迁移到v4.Fragment代码中…
开始之前 最新版知乎,单Activity多Fragment的架构,响应可以说非常"丝滑",非要说缺点的话,就是没有转场动画,并且转场会有类似闪屏现象.我猜测可能和Fragment转场动画的一些BUG有关.(这系列的最后一篇文章我会给出我的解决方案,可以自定义转场动画,并能在各种特殊情况下正常运行.) 但是!Fragment相比较Activity要难用很多,在多Fragment以及嵌套Fragment的情况下更是如此.更重要的是Fragment的坑真的太多了,看Square公司的这篇文章…
概述   Fragment表现Activity中UI的一个行为或者一部分.可以将多个fragment组合在一起,放在一个单独的activity中来创建一个多界面区域的UI,并可以在多个activity里重用某一个fragment.把fragment想象成一个activity的模块化区域,有它自己的生命周期,接收属于它自己的输入事件,并且可以在activity运行期间添加和删除.   Fragment必须总是被嵌入到一个activity中.它们的生命周期直接受其宿主activity的生命周期影响.…
1. 在Fragment里定义一个内部接口, 在Fragment初始化方法里, 把父Activity转换成这个接口, 赋值给成员变量 public class DummyFragment extends ListFragment { SomeEventListener listener; public interface SomeEventListener { public void onSomeEvent(int arg); } @Override public void onAttach(A…
我为什么不主张使用Fragment Fragment:( Fragment就相当于一个有生命周期的View,它的生命周期被所在的Activity的生命周期管理 ) 生命周期回调说明: onAttach(Activity)当Fragment与Activity发生关联时调用.onCreateView(LayoutInflater, ViewGroup,Bundle)创建该Fragment的视图onActivityCreated(Bundle)当Activity的onCreate方法返回时调用onDe…
即:android FragmentTransaction.replace的用法介绍 Fragment的生命周期和它的宿主Activity密切相关,几乎和宿主Activity的生命周期一致,他们之间最大的不同在于Activity可以增加或删除Fragment. 使用FragmentTransaction FragmentTransaction可以在运行时添加,删除或替换Fragment,从而实现UI的动态变化.Fragment Transaction由Fragment Manager的begin…
1.getActivity()  为null问题 在Fragment基类里设置一个Activity mActivity的全局变量,在onAttach(Activity activity)里赋值,使用mActivity代替getActivity(),保证Fragment即使在onDetach后,仍持有Activity的引用 protected Activity mActivity; @Override public void onAttach(Activity activity) { super.…
在Android应用中有时候要用到类似网易新闻左右滑动页面且页面里又有左右滑动的图片功能,我不知道网易是怎么实现的,本人的做法是外面的BaseFragmentActivity布局就是TabViewPager,布局代码: <com.viewpagerindicator.TabPageIndicator android:id="@+id/news_category_page_indicator" style="@style/StyledIndicators1" a…
http://www.jianshu.com/p/d9143a92ad94 Fragment系列文章:1.Fragment全解析系列(一):那些年踩过的坑2.Fragment全解析系列(二):正确的使用姿势3.Fragment之我的解决方案:Fragmentation 本篇主要介绍一些最常见的Fragment的坑以及官方Fragment库的那些自身的BUG,这些BUG在你深度使用时会遇到,比如Fragment嵌套时或者单Activity+多Fragment架构时遇到的坑.如果想看较为实用的技巧,…
FragmentActivity与Activity区别 fragment是3.0以后的东西,为了在低版本中使用fragment就要用到android-support-v4.jar兼容包,而fragmentActivity就是这个兼容包里面的,它提供了操作fragment的一些方法,其功能跟3.0及以后的版本的Activity的功能一样. 下面是API中的原话: FragmentActivity is a special activity provided in the Support Libra…
FragmentPagerAdapter刷新fragment最完美解决方案   先感谢kingjxl2006的博客文章<Android FragmentPagerAdapter数据刷新notifyDataSetChanged没效果研究>http://blog.sina.com.cn/s/blog_783ede03010173b4.html,没有他的抛砖引玉,就没有这篇博文.     好,切入正题,正如上文所说的那样,在fragmentpageadapter的instantiateItem方法里…
Fragment要点 Fragment作为Activity界面的一部分组成出现 能够在一个Activity中同一时候出现多个Fragment,而且,一个Fragment亦可在多个Activity中使用. 在Activity运行过程中,能够加入.移除或者替换Fragment(add().remove().replace()) Fragment能够响应自己的输入事件,而且有自己的生命周期,当然,它们的生命周期直接被其所属的宿主activity的生命周期影响. 设计哲学 Android在3.0中引入了…
Fragment的内容感觉好多啊,主要需要掌握Fragment静态加载,Fragment动态加载,Fragment的生命周期,Fragment与Activity的交互 1,Fragment的静态加载 在activity的layout文件中声明Fragment,需要特别注意的是<fragment>中的android:name属性指定了在laytout中实例化的Fragemnt类 标示Fragment的方法 android:id 属性提供唯一的id android:name 属性提供唯一的name…
使用Fragment 官方例子中显示: 例如:一个学生Fragment,需要传入studentId,进行http请求显示,那么setArguments后防止杀掉Fragment后,参数为0,显示不了数据. public static StudentFragment newInstance(int studentId){ StudentFragment fragment = new StudentFragment(); Bundle bundle = new Bundle(); bundle.pu…
主题是关于动画的,但是不是什么动画的内容都包括.先泛泛的介绍一下,然后详细的介绍一下翻代码找见的一个好玩的动画的使用.以下的内容包括Android 3和Android 3.1等引入的API,在使用中请注意版本. 代码都是用Kotlin写的.如果你用的是新版的Android Studio. 创建项目之后,按下快捷键Shift+Ctrl+Alt+K就会自动把代码从java转换成Kotlin. 之后按照说明给项目配置Kotlin的插件即可.很简单.Kotlin的官网在这里:http://kotlinl…
1.定义     Fragment中文解释是碎片的意思,主要用在大屏幕设备上,例如平板电脑上,支持更加动态和灵活的UI设计.Fragment在你的应用中相当于是一个模块化和可重用的组件,因为Fragment定义了它自己的布局,以及通过使用它自己的生命周期回调方法定义了它自己的行为,你可以将Fragment包含到多个Activity中. 2.特点 (1)Fragment可以作为Activity界面的一部分组成出现:(2)可以在一个Activity中同时出现多个Fragment,并且一个Fragme…
LiveData LiveData是一个用于持有数据并支持数据可被监听(观察).和传统的观察者模式中的被观察者不一样,LiveData是一个生命周期感知组件,因此观察者可以指定某一个LifeCycle给LiveData,并对数据进行监听. 如果观察者指定LifeCycle处于Started或者RESUMED状态,LiveData会将观察者视为活动状态,并通知其数据的变化. 我们看一段代码: public class LocationLiveData extends LiveData<Locati…
TabActivity在API 13(Android 3.2)被标记为过期,需要使用Fragment来实现,Fragment是Android 3.0引入的一个概念,主要就是为了适应各种不同的屏幕大小(手机.平板电脑).Android 4.1发布时,google还发布了一个Android Support v4的包,用于Android 1.6以上的系统兼容新的特性,其中包括Fragment.为了在低于Android 3.0的平台上使用Fragment,我们需要在项目的libs中加入android-s…
在上一篇文章<Android Fragment用法详解(1)--静态使用Fragment>我们讲解了Fragment的最简单的用法.这次我们来说一说Fragment复杂一丢丢的用法.在代码中动态添加Fragment,让其实现类似微信主页面效果.也就是点击底部的按钮来动态改变中间内容页面.我们先来看看效果图吧.说明一下,为了方便大家复制粘贴,里面没有任何图片素材,都是用颜色和安卓自带图片来现实效果,所以有点难看哈~~毕竟我们是程序员不是美工嘛! 接下来就是源代码啦 先看MainActivity的…
LiveData LiveData是一个用于持有数据并支持数据可被监听(观察).和传统的观察者模式中的被观察者不一样,LiveData是一个生命周期感知组件,因此观察者可以指定某一个LifeCycle给LiveData,并对数据进行监听. 如果观察者指定LifeCycle处于Started或者RESUMED状态,LiveData会将观察者视为活动状态,并通知其数据的变化. 我们看一段代码: public class LocationLiveData extends LiveData<Locati…