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

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

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

[java] view plain copy
  1. packagecom.arui;
  2. importandroid.content.Context;
  3. importandroid.util.Log;
  4. importandroid.view.View;
  5. importandroid.view.ViewGroup;
  6. importandroid.widget.Button;
  7. /**
  8. *ExampleforusingViewGroup.
  9. *
  10. *@authorhttp://blog.csdn.net/arui319
  11. *@version2010/09/07
  12. *
  13. */
  14. publicclassMyViewGroupextendsViewGroup{
  15. publicMyViewGroup(Contextcontext){
  16. super(context);
  17. this.initOtherComponent(context);
  18. }
  19. privatevoidinitOtherComponent(Contextcontext){
  20. ButtonaBtn=newButton(context);
  21. //setid1
  22. aBtn.setId(1);
  23. aBtn.setText("abtn");
  24. this.addView(aBtn);
  25. ButtonbBtn=newButton(context);
  26. //setid2
  27. bBtn.setId(2);
  28. bBtn.setText("bbtn");
  29. this.addView(bBtn);
  30. }
  31. @Override
  32. protectedvoidonLayout(booleanchanged,intl,intt,intr,intb){
  33. intchildCount=getChildCount();
  34. for(inti=0;i<childCount;i++){
  35. Viewchild=getChildAt(i);
  36. switch(child.getId()){
  37. case1:
  38. //1isaBtn
  39. Log.d("MyViewGroup","btn1setting");
  40. child.setVisibility(View.VISIBLE);
  41. child.measure(r-l,b-t);
  42. child.layout(0,0,child.getMeasuredWidth(),child
  43. .getMeasuredHeight());
  44. break;
  45. case2:
  46. //2isbBtn
  47. Log.d("MyViewGroup","btn2setting");
  48. child.setVisibility(View.VISIBLE);
  49. child.measure(r-l,b-t);
  50. child.layout(0,50,child.getMeasuredWidth(),child
  51. .getMeasuredHeight()+50);
  52. break;
  53. default:
  54. //
  55. }
  56. }
  57. }
  58. }

更多相关文章

  1. Android(安卓)WebSettings设置
  2. Android单元测试-Robolectric 浅析
  3. Android(安卓)中自定义控件和属性
  4. android项目之通讯录数据库
  5. 关于android应用--内存的优化
  6. App Widget(Application Widget)第一讲(Android学习随笔十)
  7. Android中的自定义注解(反射实现-运行时注解)
  8. ScrollView嵌套LinearLayout布局不能撑满全屏的问题
  9. Android的嵌入式关系型SQLite数据库使用

随机推荐

  1. Android中使用TagFlowLayout制作动态添加
  2. Android(安卓)常用布局及基本UI控件
  3. Android 自定义标题栏Title Bar
  4. Android (一) Android studio 安装
  5. stagefright
  6. Android消息处理机制2——Message
  7. Android Tab切换表格头
  8. android 来电自动接听和自动挂断
  9. Android之OnGestureListener实现图片的左
  10. Android获取、设置桌面