您的位置:首页 > 其它

继承ViewGroup研究(2)--在XML中使用ViewGroup初探

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

一、XML中使用ViewGroup概述

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

public MyView(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

}

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

二、在XML中使用

我们先来修改MainActivity类

public class MainActivity extends Activity {

/** Called when the activity is first created. */

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}

修改main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

<com.fxhy.stady.myviewGroup.HelloViewGroup

android:layout_width="fill_parent"

android:layout_height="fill_parent"/>

</LinearLayout>

我们运行一下:



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

三、关于三种在XML使用ViewGroup

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

1、直接使用ViewGroup

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

2、在XML中向ViewGroup中添加View

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

3、混合布局

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

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

未完待续......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: