2 xzdjq2113 xzdjq2113 于 2016.04.13 10:05 提问

iOS中有遍历父视图的子视图的方法便于统一设置同类控件的属性,Android中有类似的方法吗?

iOS不论是controller还是View视图都有获取子视图来遍历的方法,Android中对应的办法是什么,
如果Android中遇到了父视图中批量同类型子控件的同一属性的统一设置,该怎么办?

1个回答

a774057695
a774057695   2016.04.14 16:11
已采纳

Android中ViewGroup及其子类是装载View的容器,具有API:int getChildCount(), View getChildAt(int index),使用这两个方法可以知道一个ViewGroup具有的child数量以及获取child,我想你一定知道 instanceof 这个逻辑表达式,需要注意ViewGroup中可以包含ViewGroup,配合递归可以把所有的子视图都找出来比如现在有一个RelativeLayout ,需要将其中所有的Button都设置click回调可以这样:
1.modify a function:
private void bindOnClick2ButtonInLayout(ViewGroup viewGroup) {
int count = viewGroup.getChildCount();
for(int i = 0;i<count;i++) {
View child = viewGroup.getChildAt(i);
if (child instanceof ViewGroup) {
bindOnClick2ButtonInLayout((ViewGroup)child);
} else if (child instance Button) {
((Button)child).setOnClickListener(.....);
} else {
//......
}
}
}

2.调用该方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
遍历UIView的所有子视图
1.UIView的子视图没有嵌套的情况 for (UIView *subView in self.view.subviews) { NSLog(@"%@",subView); } 或者 for (int i=0; self.view.subviews.count; i++) { NSLog(@"%@",self.view.subview
iOS父视图拦截子视图事件
给父视图添加手势,但是子视图的点击事件失效了,怎么办?我在写tableView 自定义cel中显示多张图片 可以左右滑动 我在cell里面放了一个collectionView, 点击tableViewCell 跳转到详情页 如果点的是collectionView里的第三张图片,则详情页直接滑到第三张 ,点击其他区域 从第一张开始。 当图片的少的时候 点击collectionView空白区域的
iOS 子视图 父视图 UIView 相关的方法
初始化一个视图 - (id)initWithFrame:(CGRect)aRect //用指定的frame 初始化一个视图对象 结束视图中的编辑状态 - (BOOL)endEditing:(BOOL)force   //这个在弹回键盘时特别有用 关于响应 - (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecogni
iOS开发中让子视图不响应父视图的手势识别器
一.问题描述 给父视图上添加一个子视图,给父视图添加一个手势识别器UITapGestureRecognizer,点击子视图时,也会触发UITapGestureRecognizer所关联的事件 代码: UIView *blackV = [[UIView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HIGHT)];
iOS 子视图加入到父视图及移除父视图的过程
Interface Builder是建立视图层次的最便利工具,因为它可以让您看到视图在运行时的外观。在界面制作完成后,它将视图对象及其层次关系保存在nib文件中。在运行时,系统会按照nib文件的内容为应用程序重新创建那些对象和关系。当一个nib文件被装载时,系统会自动调用重建视图层次所需要的UIView方法。 如果您不喜欢通过Interface Builder和nib文件来创建视图层次,则可以通
iOS 设置父视图半透明,子视图不透明
ios  需求: 设置父视图半透明,子视图不透明: 通常我们设置一个view的透明  view.alpha = 0.5;     这时  view上面有子视图 也会变的半透明了。 这时,通过设置 view的背景颜色: 例如: view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.8] 也可以是:view.backgrou
ios 怎么禁止点击子视图的时候不响应父视图的点击事件
方法一 可以在触发手势的方法里添加一个区域的判断,如果点击区域正好是子视图的区域,则过滤掉,不处理此时的手势,如果点击的区域没有被子视图覆盖则,处理手势的事件。具体的代码如下:  if( CGRectContainsPoint(superView.Frame, [tap locationInView:Subview])) {} else{};  方法二 也可以把你的子视图实例化成
iOS移除父视图的子视图
iOS移除兹视图
iOS设置父视图透明度而不影响子视图
在设置父视图的时候,只对父视图的透明度进行更改,而不影响它上面子视图的透明度。就需要用到下面蓝色字体的设置方法。 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 375 *WIDTH, 667 *HEIGTH)];             view.backgroundColor = [[UIColor bla
如何在设置父视图的alpha的时候使子视图不受影响
一般的需求是这样的:        一个半透明的背景图,上面添加不透明的子视图,在这个子视图上面再添加一个半透明的试图。而往往,设置背景图的alpha值之后,子视图也会变得透明。这就需要特殊处理一下      要实现这样的效果我们不能直接去设置父视图的alpha。因为这样会影响到子视图的alpha;     而是要通过colorWithAlphaComponent,如:[[UICol