TabHost,在onCreate方法中获得控件的位置信息

TabHost

TabHost,在onCreate方法中获得控件的位置信息_第1张图片

短信界面就是TabHost的案例。

TabHost包括页签和内容两部分。布局文件:

TabHost,在onCreate方法中获得控件的位置信息_第2张图片

其中,TabHost,页签部分和内容部分都必须有id属性,并且id是固定的。

主界面要继承TabActivity。

findViewById的时候,由于id是系统的id值,所以要用:

TabHost mTabHost = (TabHost) findViewById(android.R.id.tabhost);


获得新页签TabSpec

TabSpec tabSpec = mTabHost.newTabSpec(tag);

如果有多个页签的话,页签的tag不能一样。

给页签添加标题和图标

tabSpec.setIndicator(label, icon);

给页签添加指向内容,指向内容为Activity:

tabSpec.setContent(intent);

将页签添加到TabHost

mTabHost.addTab(tabSpec);


运行时,4.1版本没有显示页签的图标,可以通过修改主题解决该问题:

TabHost,在onCreate方法中获得控件的位置信息_第3张图片


若点击按钮切换内容的话:

mTabHost.setCurrentTabByTag(tag);


在onCreate方法中获得控件的位置信息

需要用布局获得一个视图树观察者对象,然后再添加一个当全部布局(onLayout()方法)完成时的监听事件,如:

TabHost,在onCreate方法中获得控件的位置信息_第4张图片

一旦布局中有控件的位置信息发生改变,系统就会重新调用onMeasure()---->onLayout()---->onDraw()方法,所以要及时移除监听事件,否则会进入死循环。

你可能感兴趣的:(TabHost,在onCreate方法中获得控件的位置信息)