TabHost
短信界面就是TabHost的案例。
TabHost包括页签和内容两部分。布局文件:
其中,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版本没有显示页签的图标,可以通过修改主题解决该问题:
若点击按钮切换内容的话:
mTabHost.setCurrentTabByTag(tag);
在onCreate方法中获得控件的位置信息
需要用布局获得一个视图树观察者对象,然后再添加一个当全部布局(onLayout()方法)完成时的监听事件,如:
一旦布局中有控件的位置信息发生改变,系统就会重新调用onMeasure()---->onLayout()---->onDraw()方法,所以要及时移除监听事件,否则会进入死循环。