选项卡切换效果实现
TableHost-TableActivity
1、利用FrameLayout 然后利用代码控制 2、使用fragment 3、TabHost组件,已废弃掉,但还有很多公司用 |
TabHost 1、TabHost要一个固定的id,android:id="@android:id/tabhost" 2、必须要有TabWidget,且id固定为android:id="@android:id/tabs" 3、必须要有FrameLayout,且id固定为android:id="@android:id/tabcontent" 4、Activity还要继承TabActivity |
TabHost组件演示: 1、布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" > <RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" > <TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="50dip"
android:layout_alignParentBottom="true"> 选项卡显示在下面
</TabWidget> <FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="50dip" >
</FrameLayout> </RelativeLayout>
</TabHost>
</LinearLayout>2、代码实现 package cn.zengfansheng.tabhost;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
@SuppressWarnings("deprecation")
public class TabHostActivity extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabhost);
TabHost tabHost = getTabHost();
// 这个tag1,tag2,tag3是给程序员看的,在界面上没有
TabSpec tab1 = tabHost.newTabSpec("tag1");
TabSpec tab2 = tabHost.newTabSpec("tag2");
TabSpec tab3 = tabHost.newTabSpec("tag3");
// 每一个tab(标签,选项卡)名字
tab1.setIndicator("tabel1");
tab2.setIndicator("tabel2");
tab3.setIndicator("tabel3");
// 每一个tab(标签,选项卡)中显示的内容
tab1.setContent(new Intent(getApplicationContext(), Test1Activity.class));
tab2.setContent(new Intent(getApplicationContext(), Test2Activity.class));
tab3.setContent(new Intent(getApplicationContext(), Test3Activity.class));
// 将每一个tab加入到tabHost中去
tabHost.addTab(tab1);
tabHost.addTab(tab2);
tabHost.addTab(tab3);
}
} |
问题: 这是由于TabHost没有设置id 问题2: 这是由于tab1已经设置了,多次设置出现的问题 tab1.setContent(new Intent(getApplicationContext(), Test1Activity.class));
tab1.setContent(new Intent(getApplicationContext(), Test2Activity.class));
tab1.setContent(new Intent(getApplicationContext(), Test3Activity.class)); |