android-fragment切换时,可以点击到之前页面上的按钮

问题描述

fragment切换时,可以点击到之前页面上的按钮

fragment1上面有个按钮,fragment2上是空的,在fragment2页面点击按钮所在部位,就可以点进去,请问怎么修改

 //定义一个选中一个item后的处理
        public void setChioceItem(int index)
        {
                //重置选项+隐藏所有Fragment
                FragmentTransaction transaction = fManager.beginTransaction();  

                clearChioce();
                hideFragments(transaction);
                switch (index) {
                case 0:
                        ceshi_image.setImageResource(R.drawable.ceshitubiao2);
                        ceshi_text.setTextColor(blue);
                        TextView tv = (TextView) findViewById(R.id.biaoti);
                        tv.setText("题目练习");
                        //course_layout.setBackgroundResource(R.drawable.ic_tabbar_bg_click);
            if (fg1 == null) {
                // 如果fg1为空,则创建一个并添加到界面上  ic_tabbar_course_pressed
                fg1 = new Fragment1();
                transaction.add(R.id.content, fg1);
            } else {
                // 如果MessageFragment不为空,则直接将它显示出来
                transaction.show(fg1);
            }
            break;  

                case 1:
                        tongzhi_image.setImageResource(R.drawable.tongzhi2);
                        tongzhi_text.setTextColor(blue);
                        tv = (TextView) findViewById(R.id.biaoti);
                        tv.setText("消息通知");
                        //found_layout.setBackgroundResource(R.drawable.ic_tabbar_bg_click);
            if (fg2 == null) {
                // 如果fg2为空,则创建一个并添加到界面上
                fg2 = new Fragment2();
                transaction.add(R.id.content, fg2);
            } else {
                // 如果MessageFragment不为空,则直接将它显示出来
                transaction.show(fg2);
            }
            break;      

                 case 2:
                        wo_image.setImageResource(R.drawable.wotubiao2);
                        wo_text.setTextColor(blue);
                        //settings_layout.setBackgroundResource(R.drawable.ic_tabbar_bg_click);
                        tv = (TextView) findViewById(R.id.biaoti);
                        tv.setText("我");
            if (fg3 == null) {
     //            如果fg3为空,则创建一个并添加到界面上
                fg3 = new Fragment3();
               transaction.add(R.id.content, fg3);
            } else {
                // 如果MessageFragment不为空,则直接将它显示出来
                transaction.show(fg3);
            }
            break;
                }
                transaction.commit();
        }

        //隐藏所有的Fragment,避免fragment混乱
        private void hideFragments(FragmentTransaction transaction) {
        if (fg1 != null) {
            transaction.hide(fg1);
        }
        if (fg2 != null) {
            transaction.hide(fg2);
        }
        if (fg3 != null) {
            transaction.hide(fg3);
        }
    }


解决方案

很简单的问题,你点了按钮show出来的fragment实际上覆盖在前一个上面,R.id.content是FrameLayout。
你只需要在show出来fragment之后,hide原来的就可以了,在同一个transaction里提交一下。

解决方案二:

像这种类型的,你可以用viewpager来做

解决方案三:

楼主新建fragment的时候忘记把前面的隐藏了,
建议在新建之前都调用一次你的hideFragments方法

时间: 2024-08-29 17:06:29

android-fragment切换时,可以点击到之前页面上的按钮的相关文章

ragment状态保存-android FragmentTabHost+Fragment切换时状态保存源码

问题描述 android FragmentTabHost+Fragment切换时状态保存源码 能正常跑试验完秒采纳!316405213@qq.com发邮箱 解决方案 你要用你下载的,就别用支持库的了,如果他们都是实现的tabhost的功能 解决方案二: extends android.support.v4.app.FragmentTabHost

android Fragment切换跳转子页面空指针异常

问题描述 android Fragment切换跳转子页面空指针异常 我有四个fragment,进程序默认加载第一个,我点击了第四个fragment,然后点击它的地址列表!就会报首页轮播图的空指针异常,哪位大神吗有大概思路,给提示下 解决方案 手动抛出一个异常--- 解决方案二: http://www.51zxw.net/study.asp?vip=12576487

逻辑-android fragment切换卡顿

问题描述 android fragment切换卡顿 我没有用viewpager,我是add来加载fragment,并且每次都会调用onCreateView方法重新加载, 加载的时候大约到中间卡了0.5秒在加载上来,进度条也是卡在那里,不知道怎么搞, 看到网上人说最好不要重新调用,但是我的功能是需要重新调用的. 解决方案 Android fragment 切换加载数据卡顿问题android 切换卡顿解决方法viewpager.fragment滑动切换卡顿问题 解决方案二: 最好是用viewpage

javascript-怎样实现点击iframe导入页面中的按钮关闭这个iframe?

问题描述 怎样实现点击iframe导入页面中的按钮关闭这个iframe? 我现在有个页面A,里面有个iframe(假设id为main).这个iframe导入的页面B里面有个按钮(假设id为btn).我想要点击这个按钮,关闭整个iframe. 请问怎样才能实现?? 我也搜过一些答案.比如在B的js文件里为btn添加click事件函数: document.getElementById("btn").onclick=function(){ window.parent.document.get

点击asp页面上的按钮,打开word文档

问题描述 点击asp页面上的按钮,打开word文档 现在有一个asp页面,页面上有个张图片,当你点击图片时,打开一个项目中的word文档 页面和word文档在一个项目中 不同文件夹 解决方案 IE only <script> var w=new ActiveXObject('Word.Application'); w.Visible=true; try{w.Documents.Open("http://www.coding123.net/1.doc");}//这里修改成你的

Android中如何保存Fragment切换状态

前言 一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,这里分享一个方法. 一.应用场景 1.不使用ViewPager 2.不能用replace来切换Fragment,会导致Fragment释放(调用onDestroyView) 二.实现 1.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_widt

Android 保存Fragment 切换状态实例代码_Android

前言  一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,这里分享一个方法.  正文  一.应用场景   1.不使用ViewPager   2.不能用replace来切换Fragment,会导致Fragment释放(调用onDestroyView)  二.实现 1.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:

深入浅析 Android Fragment(上篇)_Android

自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像Activity一样包含布局.Fragment通常是嵌套在Activity中使用的,现在想象这种场景:有两个Fragment,Fragment 1包含了一个ListView,每行显示一本书的标题.Fragment

深入浅析Android Fragment(下篇)_Android

在上篇文章给大家介绍深入浅析Android Fragment(上篇),包括一些基本的用法和各种API,如果还想深入学习请继续关注本篇文章. 本篇将介绍上篇提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与ActionBar,MenuItem集成等~~ 1.管理Fragment回退栈 类似与Android系统为Activity维护一个任务栈,我