import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; public class NoScrollViewPager extends ViewPager { private boolean noScroll = true; //true 代表不能滑动 //false 代表能…
当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即 Fragment需要加载UI内容,而又频繁地切换Fragment,就容易产生卡顿现象(类似在ListView快速滑动的同时加载图片容易卡顿). ===========================.处理方案 =============================== 1.Fragment轻量化 如果ViewPager加载的Fragment都比较轻量,适当精简…
1.说明: 在使用RadioGroup做标题栏切换的时候,跟ViewPager的滑动有冲突,最后查看了源码+断点调试解决了一些碰到的问题,写一篇博客总结一下,有同样需求的朋友可以借鉴一下,自己以后有用到也方便复习. 2.代码结构,以及功能说明 1).主界面的Fragment切换使用ViewPager实现 2).标题栏用RadioGroup实现 3).实现这两个控件的监听函数,改变背景,改变字体颜色,设置当前Fragment,设置当前选中RadioButton 3.主界面代码实现 public c…
ViewPager中切换界面Fragment被销毁的问题分析   1.使用场景 ViewPager+Fragment实现界面切换,界面数量>=3   2.Fragment生命周期以及与Activity生命周期对比                    3.问题描述 按上图所说,只有当Fragment所Attached的Activity执行destroy的时候才会调用onDestoryView方法,然而现实是: 当界面由2切换到1的时候,3界面对应的Fragment实际上走了如下流程: -->o…
ViewPager中切换界面Fragment被销毁的问题分析  原文链接 http://www.cnblogs.com/monodin/p/3866441.html 1.使用场景 ViewPager+Fragment实现界面切换,界面数量>=3   2.Fragment生命周期以及与Activity生命周期对比                    3.问题描述 按上图所说,只有当Fragment所Attached的Activity执行destroy的时候才会调用onDestoryView方法,…
ViewPager中切换界面Fragment被销毁的问题分析 使用ViewPager+Fragment实现界面切换,当界面数量大于3时,出现二次滑动后数据消失的情况,下面由Fragment生命周期进行分析 简单解析: 使用pager=3进行测试,当界面由2切换到1的时候,3界面对应的Fragment实际上走了如下流程: 1 -->onPause 2 -->onStop 3 -->onDestroyView 再由1切换回2或者3时,3界面对应的Fragment的执行流程: 1 -->…
Fragment 页面切换不能滑动 所以对于listview 能够加入的左右滑动事件 .不会有冲突比如(QQ的好友列表的删除)  Fragment 和viewpager 的差别  Viewpager 的事件都须要写在 MainActivity 使得 MainActivity 类很冗余  Fragment 内部的事件则能够由其内部去处理分成多个类. 便于维护和管理 MainActivity 仅仅起到一个调度的作用 这里先用Fragment实现非滑动页面切换,了解原理后我会在还有一篇文章使用Frag…
在android开发中,用一个radiogroup控制多个fragment切换是十分常见的需求.但是如果fragment是一个ListView,如何保证滑动的时候通过缺角可以看到下面的listview是一个难点. 直接上图: (1)完美效果 (2)较差效果 另外,不妨假设缺角的高度是5dp,整个radioGroup的高度是50dp.还要求,不能遮挡listVIew第一个元素. 下面是我的主布局xml代码: <RelativeLayout xmlns:android="http://sche…
此工程较BaiduLocationXMLFragmentDB相比:1.滑动fragment自动刷新该fragment2.下拉刷新fragment,上拉暂未实现 a.fragment切换刷新 1 . 由于运行进入是fragment1,会默认加载fragment2,但是加载的时候,获取的得到地址天气信息并没有存入数据库中,所以切换到fragment2时不会执行OncreateView再次加载fragment2(刷新方法写在OncreateView),从而不会显示刚存入数据库的数据 首先说明下view…
尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky/article/details/46847269 需求 在搭界面有这么样一个需求:须要两层的Fragment嵌套,内层须要滑动切换效果,外层界面不须要滑动效果. 那么内层使用ViewPager切换,外层就使用replace切换.这样搭出来的界面不能得到须要的效果,内层的Fragment仅仅有第一次能显示内容.之后切换外层Fragment时.内层Fragent都是空着的. 我再尝试两层Fragmen…
前言 一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,这里分享一个方法. 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 一.应用场景 1.不使用ViewPager 2.不能用replace来切换Fragment,会导致Fragment释放(调用onDestroyView) 二.实现 1.xml <LinearLayout x…
问题分析 一直在简书里看别人的技术贴,今天我也来写点自己的心得!最近在写一个项目用到大量的Fragment后的总结! 我想刚刚接触安卓的同学或许会这么写: FragmentManager fragmentManager=getSupportFragmentManager(); FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction(); fragmentTransaction.add(ViewId,frag…
以前实现Fragment的切换都是用replace方法实现 public void startFragmentAdd(Fragment fragment) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R…
public void switchContent(Fragment fragment) { if(mContent != fragment) { mContent = fragment; mFragmentMan.beginTransaction()                .setCustomAnimations(android.R.anim.fade_in, R.anim.slide_out)   .replace(R.id.content_frame, fragment) // 替…
http://www.tuicool.com/articles/FJ7VBb FragmentTabHost切换Fragment时避免UI重新加载 不过,初次实现时发现有个缺陷,每次FragmentTabHost切换fragment时会调用onCreateView()重绘UI. 解决方法,在fragment onCreateView 里缓存View: Java代码 收藏代码private View rootView;// 缓存Fragment view @Override public View…
在使用Activity管理多个Fragment时,每次切换Fragment使用的是replace,结果导致出现xxx is not currently in the FragmentManager异常挂掉 网上说使用replace切换会使被切换的Fragment给替换掉,从而被被切换的Fragment的view从viewtree中删除,致使切换过程中每次都要重新创建Fragment 每次使用add添加Fragment,当再次切换到时用show显示,而被切换的Fragment用hide隐藏,具体代…
注意: 因为继承的是Fragment,所以getSupportFragmentManager()与getFragmentManager()方法无法使用,这里需要用到getChildFragmentManager()方法: (用getFragmentManager()方法并不会报错,但到时候运行的时候会出问题,查了好久才知道这个错误) 统一Fragment类型,要么为“android.support.v4.app.Fragment”,要么为“android.app.Fragment”: 明白需求类…
以前实现Fragment的切换都是用replace方法实现 public void startFragmentAdd(Fragment fragment) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R…
1.最近做需求,遇到一个问题,一个Fragment中包含了一个ViewPager,viewPager中包含一adapter ,adapter中包含了4个Fragment.想要动态替换第3个Fragment由A Fragment-->B Fragment.如图: 2. 原本以为很简单的事,分分钟就能搞定,但是更新了list<Fragment> 数据源,notifyDataSetChanged()后,页面没有被替换,邪门啊. 3.上网一通乱查,发现一个说法:重写getItemPosition…
转自:http://www.yrom.net/blog/2013/03/10/fragment-switch-not-restart/ 让多个Fragment 切换时不重新实例化 在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment: 1 2 3 4 5 6 7 8 9 public void switchContent(Fragment fragment) { if(mContent != fragment) { mContent = fragment…
接着上一篇项目的进度.上一篇讲了怎样利用fragment来实现下拉菜单.公用菜单,以实现切换主界面数据的功能,这时候遇到的问题是:使用了fragment的切换界面方法.但载入的数据太多.用户从一个界面切换到这个界面的时候.至少有一两秒的卡顿,这是无法忍受的,代码例如以下: private void initOpenMenuItem(View popupWindow_view) { DrawableCenterTextView menu_price = (DrawableCenterTextVie…
在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment:然后总感觉切换的时候有些卡顿,原来的代码 /** * 切换页面,这里采用回调 * * @param f */ public void switchFragment(Fragment f) { if (f == null) return; FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction();…
网上看到的例子,转过来记录一下,学习一下,感谢原作者的辛勤编码,效果非常好 基于Android3.0新增的动画api,效果很赞 共21种动画效果: <item>X轴缩放</item> <item>Y轴缩放</item> <item>XY轴绽放</item> <item>淡入淡出</item> <item>水平翻页</item> <item>垂直翻页</item>…
场景: 需求是在expandablelistview的item长按会弹出一个对话框,对话框顶部一个选项卡,下面是fragment作相应的切换.对话框是用DialogFragment实现的. 问题: java.lang.IllegalArgumentException: No view found for id 0x7f0c00a8 (app.yinhai.org.securitycheckapp:id/container_contentDialog) for fragment ContentDi…
最近两天做项目时,要在fragment里面嵌套Fragment,最开始使用Fragment的hide,show等方法一直失败,,如图,message是一个fragment,在里面又有两个子fragment,(Firends和follow),后来把两个fragment改ViewPager方式进行切换,这时一定要注意msgAdapter=new FragmentMessagePagerAdapter(getChildFragmentManager());在new PagerAdapter时,一定要传…
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.viewpager.widget.ViewPager android:id="@+id/vp_guide…
今天遇到挺纠结的问题,由于产品设计的问题,技术上涉及到activity 嵌套一级fragment,一级fragment嵌套二级fragment,在一级fragment中刷新二级fragment中的UI. 其中一级fragment中有顶部搜索栏,搜索栏下面有viewpager+fragment的布局,搜索栏输入内容后要更新子当前页面的fragment的搜索方法,并刷新UI. adapter: private class OrderManagerFragmentPagerAdapter extend…
public class ViewPagerActivity extends Activity { List<View> listViews; Context context = null; LocalActivityManager manager = null; TabHost tabHost = null; private ViewPager pager = null; @Override protected void onCreate(Bundle savedInstanceState)…
参考自张泽华视频 Fragment是自Android3.0后引入的特性,主要用于在不同的屏幕尺寸中展现不同的内容. Fragment必须被嵌入Activity中使用,总是作为Activity的组成部分. 简单示例: 一个Activity的界面由2个部分组成,每个部分分别是一个Fragment. 效果图如下: 1.创建第一个Fragment的界面文件. Fragment的界面文件和一般的Activity布局文件一样,如. <?xml version="1.0" encoding=&…
在子Fragment操作父Fragment的思路 ((FragmentRecyclerBD)FragmentAppointmentBD.this.getParentFragment()).changePageTitle(0,!TextUtils.isEmpty(curSearchContent) ? beanAppointments.size() : 0);//子类 public void changePageTitle(int index,int num){ //父类 if(null != t…