




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源车消费者购车决策行为调查报告
- 工程项目合同与资金支付管理系统
- 产品研发项目委托合同书草稿
- 酒店餐饮服务质量管理合同范本
- 水泥采购合同范本及风险防控措施
- 2023年上半年史赛克ESG行动报告:打造世界级医疗器械品牌
- 2023年度贝克顿·迪金森康复治疗器械ESG发展报告:员工福祉与企业可持续性
- 工程建设所需柴油采购合同2篇
- 2025年小鹏汽车智能驾驶技术专利分析报告
- 2025年合同审查要点与合同履行监督方案
- 2025版煤矿安全规程学习培训课件
- 2025-2026学年地质版(2024)小学体育与健康二年级全一册《别让眼睛受伤害》教学设计
- 车辆安全培训课件
- 2025年商标审查协作中心面试模拟题答案
- esg考试试卷问题及答案
- 2025年徐州市中考数学试题卷(含答案及解析)
- 统编版五升六语文开学摸底测试卷(十二)(含答案)
- 2025-2026学年北师大版(2024)初中物理八年级上册教学计划及进度表
- 2025年度哈尔滨“丁香人才周”(春季)哈尔滨新区教育系统专项招聘80人考试备考试题及答案解析
- 军用电台知识培训方案课件
- 外科面试题目及答案
评论
0/150
提交评论