已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
对于刚入手Fragment的新手,在学习利用按钮实现多个Fragment切换时,可能会遇到“按下第一个Fragment的按钮后,切换到第二个Fragment时,第一个Fragment的控件(按钮或文本等等)还保留”的问题。这个问题同样困扰了我两天,作为一名业余编程者而已,知识有限,也只能在网上寻求解决的方法,然而网上也没找到好的说法和解决方法,纯靠自己摸索,终于明白了其所以然。以下讲解均是个人见解,希望能帮到读这篇文张的你。对于问题,是没有解决方法的。为什么这么说呢?因为这个现象的本身并不是问题,而是作为初学者的理解还没到位的缘故。使用android studio新建一个Fragment项目后,你会见一个MainActivityFragment,图中F1、F2是为了验证我的猜想创建的Fragment的子类,所以你大可不用理它们,只需知道MainActivity和MainActivityFragment是随着项目建立而生成的,那就足够了。接下来就是这个问题的核心了,MainActivityFragment是什么?在往后创建的所有Fragmeng类中,它实际是充当一个什么样的角色?答案:当你只在MainActivityFragment的基础上新建一个Fragment的子类(F1)时,调试的结果和模拟器呈现的现象,会让你困扰其中。但 当你新建多两个Fragment类(F1、F2)的时候,你就会发现它们居然可以实现相互间的切换,然而MainActivityFragment的控件(文本控件、按钮控件等等这些添加在fragment_main.xml中的控件)依旧存在,并没有随着fragment的切换而消失。针对这种现象,是否可以这样认为:MainActivityFragment虽然是Fragment类,但是它被Android studio 创建出,是为了作为编程者往后所编写的Fragment子类的一个背景,也就是一个根源。就好比如你在一张纸上上,可以用各种笔涂鸦一样。纸就是MainActivityFragment,而在MainActivityFragment上展现出来的Fragment子类就是笔。因此,你无法用replace()、remove()来实现擦除MainActivityFragment的控件。测试:fragment_main.xml里面的代码 f1.xml里面的代码 f2.xml里面的代码 F1里面的代码package com.fishbarbar.myapplication;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/* * Created by Administrator on 2015/8/25. */public class F1 extends Fragment Nullable Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) View view=inflater.inflate(R.layout.f1,container,false); return view; F2里面的代码package com.fishbarbar.myapplication;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/* * Created by Administrator on 2015/8/25. */public class F1 extends Fragment Nullable Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) View view=inflater.inflate(R.layout.f2,container,false); return view; MainActivityFragment里面的代码package com.fishbarbar.myapplication;import android.support.v4.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/* * A placeholder fragment containing a simple view. */public class MainActivityFragment extends Fragment public MainActivityFragment() Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) View view=inflater.inflate(R.layout.fragment_main,container,false);view.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() Override public void onClick(View v) getFragmentManager().beginTransaction().replace(R.id.fragment,new F1().commit(); ); view.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() Override public void onClick(View v) getFragmentManager().beginTrans
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 摇床选矿工岗前冲突管理考核试卷含答案
- 石英晶体生长设备操作工岗位职业健康技术规程
- 石材护理工应急处置技术规程
- 函数拔高-对数函数(解析版)-高中数学必修第一册题型考点突破
- 解析几何探秘
- 特训01 解一元二次方程分类通关专练-2025-2026学年九年级数学上学期期中期末挑战满分冲刺卷(人教版)(原卷版)
- 《openEuler系统管理与服务部署》课件 项目三 - 03-文件权限管理
- 2025福建片仔癀健康科技有限公司市场总监市场化选聘及笔试历年参考题库附带答案详解
- 2025安徽省合庐产业新城建设投资有限公司招聘2人笔试历年参考题库附带答案详解
- 2025湖南高速物流发展有限公司招聘劳务派遣员工笔试历年参考题库附带答案详解
- 儿科重症护理要点精讲
- 2025年西藏自治区公务员录用考试申论真题试卷(含答案)
- 2025年广西公需科目考试题及答案
- 语文园地六 课件
- 2025国家公务员政治理论应知应会知识试题库与答案
- (2026年)中国老年肌少症诊疗专家共识解读课件
- 2026年中国电商业发展展望及投资策略报告
- 杭州商铺买卖合同范本
- 车库赠送转让合同范本
- 2025江苏苏大教服集团校园招聘笔试历年典型考点题库附带答案详解试卷3套
- 花知晓在日本市场的营销策略分析
评论
0/150
提交评论