Android 继承ViewGroup研究(2)

来源:互联网 发布:男朋友是男神体验知乎 编辑:程序博客网 时间:2024/04/28 05:30

这次研究的是XML中布局自定义ViewGroup,为什么要在XML中自定义ViewGroup,呵呵,其实这个东西吧,还真没法说,我个人的感觉是可以方便的使用Android中已经给出的各种组件,还有自己的组件。下面我们就来看看在XML中布局。

 

一、XML中使用ViewGroup概述

首先我们要知道Android中的View以及ViewGroup,甚至是自己继承Android中系统组件的View,都可以在XML中使用。不过要注意的一点就是一定要在自定义的类中添加上以下的构造器:

  1. public MyView(Context context, AttributeSet attrs) {
  2.  
  3.             super(context, attrs);
  4.  
  5.             // TODO Auto-generated constructor stub
  6.  
  7.    }

同样,在XML中定义ViewGroup也必须有这个方法。因为从Android系统解析自定义的View时是根据这个方法来解析的,没有这个方法是不行的。各位可以试一试。

二、在XML中使用

我们先来修改MainActivity类

 

  1. public class MainActivity extends Activity {
  2.  
  3.     /** Called when the activity is first created. */
  4.  
  5.     public void onCreate(Bundle savedInstanceState) {
  6.  
  7.         super.onCreate(savedInstanceState);
  8.  
  9.         setContentView(R.layout.main);
  10.  
  11.     }
  12.  
  13. }

修改main.xml

  1. <?xml version=“1.0″ encoding=“utf-8″?>
  2.  
  3. <LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
  4.  
  5.     android:orientation=“vertical”
  6.  
  7.     android:layout_width=“fill_parent”
  8.  
  9.     android:layout_height=“fill_parent”
  10.  
  11.     >
  12.  
  13. <TextView 
  14.  
  15.     android:layout_width=“fill_parent”
  16.  
  17.     android:layout_height=“wrap_content”
  18.  
  19.     android:text=“@string/hello”
  20.  
  21.     />
  22.  
  23.     <com.fxhy.stady.myviewGroup.HelloViewGroup
  24.  
  25.       android:layout_width=“fill_parent”
  26.  
  27.       android:layout_height=“fill_parent”/>
  28.  
  29. </LinearLayout>

我们运行一下:

完美运行,哈哈,有没点成就感啊,哈哈。

 

三、关于三种在XML使用ViewGroup

其实我们有三种在XML布局中使用ViewGroup的方法:

1、直接使用ViewGroup

这个就是我们刚才使用的那个方法,这个方法是在自己写的ViewGroup中通过addView方法一个一个添加子View,个人感觉这样使用不太爽,呵呵,但是不可否认这样使用有其独挡一面的地方。

2、在XML中向ViewGroup中添加View

这个方法我们将在下一节研究,关于这个的话会涉及到一些其他的知识点,我们现在先不探讨这个。

3、混合布局

就像css+table一样,呵呵,我们是不是可以既使用XML中声明的ViewGroup中添加View,又在自己写的类中添加View???那这样添加的View是先添加XML中的,还是先添加在自定义的类中的???

呵呵,这个一个需要探究的问题,有兴趣的可以先自己研究下,在以后的章节中我会给出研究结果。

 

未完待续……

 

原创文章,转载请注明: 转载自DEVDIV博客

本文链接地址: Android 继承ViewGroup研究(2)–在XML中使用ViewGroup初探