WEB开发网
开发学院手机开发Android 开发 Android UI学习 - Tab的学习和使用 阅读

Android UI学习 - Tab的学习和使用

 2010-05-18 16:38:00 来源:WEB开发网   
核心提示:android:text="@string/tabs_1_tab_1"/ > < TextView android:id="@+id/view2" android:background="@drawable/red" android:layout_
android:text="@string/tabs_1_tab_1"/ > < TextView android:id="@+id/view2" android:background="@drawable/red" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/tabs_1_tab_2"/ > < TextView android:id="@+id/view3" android:background="@drawable/green" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/tabs_1_tab_3"/ > < /FrameLayout > < ! -- strings.xml < string name="tabs_1_tab_1" >tab1< /string > < string name="tabs_1_tab_2" >tab2< /string > < string name="tabs_1_tab_3" >tab3< /string > -- >

原来是用FrameLayout的!

而让Tab1的内容显示tab1且背景为Blue,是setContent(R.id.view1)这里引用了TextView1。现在就基本明白如何添加tab以及如何设置label和content了。

接下来看看Views/Tabs/Content By Factory的例子:

TabHost2

代码

public class Tabs2 extends TabActivity implements TabHost.TabContentFactory { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final TabHost tabHost = getTabHost(); tabHost.addTab(tabHost.newTabSpec("tab1") .setIndicator("tab1", getResources().getDrawable(R.drawable.star_big_on)) .setContent(this)); tabHost.addTab(tabHost.newTabSpec("tab2") .setIndicator("tab2") .setContent(this)); tabHost.addTab(tabHost.newTabSpec("tab3") .setIndicator("tab3") .setContent(this)); } public View createTabContent(String tag) { final TextView tv = new TextView(this); tv.setText("Content for tab with tag " + tag); return tv; } }

可以看到通过override重写(重新实现)父类TabHost.TabContentFactory中的方法View createTabContent(String tag)来实现不同tab的不同content。同时在setContent的参数设置为相应的TabContentFactory。

原来createTabContent是在每个tab第一次显示时才调用的,随后再次显示该tab就不会再次调用的,我自己用Logcat查看到的!这一点很关键,就是说在createTabContent是在tab没有完全创建前调用的,这意味在

上一页  1 2 3 4  下一页

Tags:Android UI 学习

编辑录入:coldstar [复制链接] [打 印]
赞助商链接