您的位置:首页 > 移动开发 > Android开发

Android之底部TabHost实现

2013-04-12 11:39 411 查看
TabHost默认情况下是显示在屏幕顶部,但是很多情况下我们希望它显示在底部,ok,直接上代码

第一步:首先是布局文件

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />

<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
</LinearLayout>

</TabHost>


第二步:在Activity中使用TabHost,注意,我创建了三个activity用来跳转,每个activity显示一张图片,这里只给出使用TabHost的activity代码

剩下的三个测试用的activity,大家自由发挥了。

package com.front.tabdemo;

import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabWidget;

public class MainActivity extends TabActivity {

private TabHost host;
private TabWidget widget;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

host = this.getTabHost();

Intent it_one = new Intent(this, activity_one.class);
TabHost.TabSpec one_spec = host.newTabSpec("第一张");
one_spec.setContent(it_one);
one_spec.setIndicator("第一张");
host.addTab(one_spec);

Intent it_two = new Intent(this, activity_two.class);
TabHost.TabSpec two_spec = host.newTabSpec("第二张");
two_spec.setContent(it_two);
two_spec.setIndicator("第二张");
host.addTab(two_spec);

Intent it_three = new Intent(this, activity_three.class);
TabHost.TabSpec three_spec = host.newTabSpec("第三张");
three_spec.setContent(it_three);
three_spec.setIndicator("第三张");
host.addTab(three_spec);

widget = host.getTabWidget();
// 初始化各个标签的背景
setTabBackground();

// 给host添加标签改变事件,点击相应的标签时改变其背景
host.setOnTabChangedListener(new OnTabChangeListener() {

public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
setTabBackground();
}
});

}

public void setTabBackground() {
for (int i = 0; i < widget.getChildCount(); i++) {
View view = widget.getChildAt(i);
if (host.getCurrentTab() == i) {
view.setBackgroundResource(R.drawable.number_bg_pressed);
} else {
view.setBackgroundResource(R.drawable.number_bg);
}
}

}

}


ok,这样显示在底部的TabHost就完成了,效果图如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐