当前位置: 首页 > news >正文

Android中ViewGroup等容器控件的使用

Android中,可以自定义类,继承ViewGroup等容器类,以实现自己需要的布局显示。

如果你在ViewGroup中增加了控件,却无法显示出来,那么下面这个例子,就可以用来参考了。

(主要是要实现onLayout()方法,在这个方法中,对每个子控件进行measure(),然后再布局。)

package com.arui; import android.content.Context; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.Button; /** * Example for using ViewGroup. * * @author http://blog.csdn.net/arui319 * @version 2010/09/07 * */ public class MyViewGroup extends ViewGroup { public MyViewGroup(Context context) { super(context); this.initOtherComponent(context); } private void initOtherComponent(Context context) { Button aBtn = new Button(context); // set id 1 aBtn.setId(1); aBtn.setText("a btn"); this.addView(aBtn); Button bBtn = new Button(context); // set id 2 bBtn.setId(2); bBtn.setText("b btn"); this.addView(bBtn); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { View child = getChildAt(i); switch (child.getId()) { case 1: // 1 is aBtn Log.d("MyViewGroup", "btn1 setting"); child.setVisibility(View.VISIBLE); child.measure(r - l, b - t); child.layout(0, 0, child.getMeasuredWidth(), child .getMeasuredHeight()); break; case 2: // 2 is bBtn Log.d("MyViewGroup", "btn2 setting"); child.setVisibility(View.VISIBLE); child.measure(r - l, b - t); child.layout(0, 50, child.getMeasuredWidth(), child .getMeasuredHeight() + 50); break; default: // } } } }

相关文章:

  • 软考--数据通信与网络基础
  • shell--字符串比较,整数比较,文件比较
  • SQL查询有关 sql_variant 值的基本数据类型和其他信息
  • struts2常量的配置
  • HTML5判断设备在线离线及监听网络状态变化例子
  • ntc:iBatis的demo
  • Linux RAID简介
  • 正确理解SOA、SaaS和云计算的关系
  • linux查看各项参数
  • 关于关于--关于网络,关于还是关于
  • 【Demo 0002】Android 提醒框
  • 数据相似性检测算法
  • vc的UI编程PngTextButton控件的适用情况
  • Android中在屏幕上涂鸦的例子
  • 近期备考安排
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【RocksDB】TransactionDB源码分析
  • ComponentOne 2017 V2版本正式发布
  • co模块的前端实现
  • echarts的各种常用效果展示
  • TypeScript迭代器
  • Yeoman_Bower_Grunt
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 关于springcloud Gateway中的限流
  • 十年未变!安全,谁之责?(下)
  • 数组大概知多少
  • 正则学习笔记
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (力扣题库)跳跃游戏II(c++)
  • (生成器)yield与(迭代器)generator
  • (十八)三元表达式和列表解析
  • (转)LINQ之路
  • (转)人的集合论——移山之道
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Remoting学习笔记(三)信道
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET项目中存在多个web.config文件时的加载顺序
  • /proc/vmstat 详解
  • ??myeclipse+tomcat
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [Android Pro] AndroidX重构和映射
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [Design Pattern] 工厂方法模式
  • [docker] Docker的数据卷、数据卷容器,容器互联