ViewGroup
来源:互联网 发布:淘宝买家旺旺号是什么 编辑:程序博客网 时间:2024/05/01 02:52
以下是我在网上找到的一篇内容,希望对你有所帮助!!
在Android中,可以自定义类,继承ViewGroup等容器类,以实现自己需要的布局显示。
如果你在ViewGroup中增加了控件,却无法显示出来,那么下面这个例子,就可以用来参考了。
(主要是要实现onLayout()方法,在这个方法中,对每个子控件进行measure(),然后再布局。)
view plaincopy to clipboardprint?
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:
//
}
}
}
}
在Android中,可以自定义类,继承ViewGroup等容器类,以实现自己需要的布局显示。
如果你在ViewGroup中增加了控件,却无法显示出来,那么下面这个例子,就可以用来参考了。
(主要是要实现onLayout()方法,在这个方法中,对每个子控件进行measure(),然后再布局。)
view plaincopy to clipboardprint?
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:
//
}
}
}
}
- ViewGroup
- ViewGroup
- ViewGroup
- ViewGroup
- ViewGroup
- ViewGroup
- ViewGroup
- ViewGroup
- VIEWGROUP
- viewGroup
- Android ViewGroup
- ViewGroup 学习
- viewGroup demo
- viewgroup浅析
- viewgroup 循环
- ActivityGroup & ViewGroup
- ViewGroup.LayoutParams
- ViewGroup进阶
- JAVA SOCKET POST
- Ubuntu安装GTK的三种方法
- UIScrollView的属性总结
- Read 系统调用在用户空间中的处理过程
- ios 画图总结
- ViewGroup
- Ubuntu设置vim
- Android IPC进程通信——Messager方式
- 编译内核
- Java Web基础——Web组件重用与JavaBeans
- tomcat bug也可以算是改进建议
- 常用JS图片滚动代码大全
- iphone 晃动检测方法
- Hibernate映射mysql问题 one-to-one