2019独角兽企业重金招聘Python工程师标准>>>

在做android UI 的时候,遇到了一个问题,因为不同的UI之间需要相互切换。所以不加思索的写了下面的程式

public class  FirstLayout extends LinearLayout {
    public FirstLayout (Context context) {
        super(context);
        initial(context);
    }      
    void initialize(final Context context,t) {
       
            addView(new SecondLayout(context, eventlist));
       
    }

}

public class  SecondLayout extends LinearLayout  {
  
    public SecondLayout (Context context) {
        super(context);
        initial(context);
    }      
    void initialize(Context context) {    
            initial(new FirstLayout(contextt));  
    }   
}

在这种情况下,比如说,我们点击button,页面进行跳转。但是会进行不断的入栈操作,最终导致stack overflow.

所以为了避免这种情况的出现,要进行另外一种操作,在定义个整体布局,然后分开处理

public class FatherClass  extends LinearLayout{

private LinearLayout sonLayout = null;

private LinearLayout daughterLayout = null;

private Button AButton = null;

private Button BButton = null;

public FatherClass (Context context) {

supper(context);

initial(context);

}

initial(Context context) {

AButton.setOnClickListener(new OnClickListener() {
                public void onClick(View view) {
                    removeView(sonLayout )
                    addView(daughterLayout);
                }
        });

BButton.setOnClickListener(new OnClickListener() {
                public void onClick(View view) {
                    removeView(daughterLayout)
                    addView(sonLayout);
                }
        });
    }

/*generate sonLayout*/

void addSonLayout(Context){

sonLayout = new LinearLayout(context);

.........

}

/*generate daughterLayout*/

void addDaughterLayout(Context){

daughterLayout = new LinearLayout(context);

.........

}

}

其中,用的是removeView ,删除这样一个子布局,而不是用removeAllViews。这样做的好处就是可以做到局部处理。

从而避免了嵌套入栈操作。所以这一点在多页面布局的时候应该考虑到。

转载于:https://my.oschina.net/u/138169/blog/16794

android stackover flow problem相关推荐

  1. Multi-commodity Flow Problem

    多物网络流问题(Multi-commodity Flow Problem)是多种物品(或货物)在网络中从不同的源点流向不同的汇点的网络流问题. 定义

  2. Android Kotlin Flow 如何使用callbackflow

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/121840157 本文出自[赵彦军的博客] callbackFlow 原理 call ...

  3. 网络流--最大流--HDU 3549 Flow Problem

    题目链接 Problem Description Network flow is a well-known difficult problem for ACMers. Given a graph, y ...

  4. hdu 3549 Flow Problem(最大流模板题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 Problem Description Network flow is a well-known ...

  5. android wifi flow

    复习并记录下android wifi相关知识,因为下载的是androidp 的source code,因此codebase就用androidP的版本,复习整个android wifi的flow,我大概 ...

  6. HDU 3549 Flow Problem(最大流模版EK算法)

    题目链接 第一道最大流,赤裸裸的模版题,刚好可以熟悉模版用.今天看了一下最大流,就看了一个EK算法,感觉有点和二分图匹配算法有点相似,对于最大流问题有点了解了,不过为什么这么做,也不是 很懂,只是把代 ...

  7. HDU 3549 Flow Problem (dinic模版 isap模版)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 题意: 给你一个有向图,问你1到n的最大流. dinic模版 (n*n*m) 1 #includ ...

  8. [hdu3549]Flow Problem(最大流模板题)

    解题关键:使用的挑战程序设计竞赛上的模板,第一道网络流题目,效率比较低,且用不习惯的vector来建图. 看到网上其他人说此题有重边,需要注意下,此问题只在邻接矩阵建图时会出问题,邻接表不会存在的,也 ...

  9. Flow Problem

    http://acm.hdu.edu.cn/showproblem.php?pid=3549 题解: 网络流最大流 Dinic 算法 参考文章:https://blog.csdn.net/txl199 ...

最新文章

  1. 11gR2RAC环境DBCA创建一个数据库错误ORA-15055 ORA-15001
  2. 一起谈.NET技术,异步调用与多线程的区别
  3. CF662C Binary Table(FWT_XOR卷积)
  4. PMP读书笔记(第8章)
  5. Android使用SeekBar
  6. [文章摘录] Is Cloud Computing Really Ready for Prime Time (Computer, 2009)
  7. exe反编译为py文件
  8. fiddler抓不到PC端微信小程序的包
  9. 超定方程组和欠定方程组
  10. 阿里短信单发,批量发送
  11. PBS+maui安装文档
  12. SRT视频字幕的解析与同步
  13. BLE(一) GAP、GATT
  14. 神经胶质瘤是怎么引起的,胶质瘤和神经胶质瘤
  15. pycharm删除的文件找回步骤
  16. Java实训项目一一拼图游戏(附源码)
  17. <Zhuuu_ZZ>那些年我们踩过的Hadoop HA的坑--高可用集群
  18. weico.cc微博链接
  19. QT 设置QPushButton背景为透明色
  20. Opencv学习笔记 - 使用opencvsharp和决策树进行训练和预测

热门文章

  1. mongodb查询数据库中某个字段中的值包含某个字符串的方法
  2. Hadoop供应商MapR:先上市, “不久之后”就会盈利
  3. xs_run加密还原
  4. 《树莓派开发实战(第2版)》——1.7 连接DVI或VGA显示器
  5. 安装nexus时遇到的一个问题
  6. 学习org-mode
  7. android PendingIntent参数详细解析
  8. [转载]关于request和session详解
  9. 捉虫记 单步跟踪 条件断点 变量查看实践
  10. 口语学习Day2:今天来说说我的小客厅!