import android.app.TabActivity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabSpec;
import android.widget.TabWidget;
import android.widget.TextView;
/**
* @Description:
* @ChangeList:
*/
public class MyTabActivity extends TabActivity {
private static final String TAG = "MyTabActivity";
private static final int TAB_HEIGHT = 40;
private TabHost tabHost;
private TabWidget tabWidget;
@Override
protected void onStart() {
Log.d(TAG, FileUtils.getMethodName());
super.onStart();
}
@Override
protected void onRestart() {
Log.d(TAG, FileUtils.getMethodName());
super.onRestart();
}
@Override
protected void onStop() {
Log.d(TAG, FileUtils.getMethodName());
super.onStop();
}
@Override
protected void onPause() {
Log.d(TAG, FileUtils.getMethodName());
super.onPause();
}
@Override
protected void onDestroy() {
Log.d(TAG, FileUtils.getMethodName());
super.onDestroy();
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, FileUtils.getMethodName());
super.onCreate(savedInstanceState);
setContentView(R.layout.index_tab);
tabHost = this.getTabHost();
tabHost.getTabWidget().setStripEnabled(false);
TabSpec ts1 = tabHost.newTabSpec("1");
ts1.setIndicator(getString(R.string.title_sdcard));
ts1.setContent(new Intent(this, A.class));
tabHost.addTab(ts1);
TabSpec ts2 = tabHost.newTabSpec("2");
ts2.setIndicator(getString(R.string.title_remote));
ts2.setContent(new Intent(this, B.class));
tabHost.addTab(ts2);
tabWidget = (TabWidget) findViewById(android.R.id.tabs);
for (int i = 0; i < tabWidget.getChildCount(); i++) {
View view = tabWidget.getChildAt(i);
view.setBackgroundDrawable(getResources().getDrawable(
R.drawable.grey));
view.getLayoutParams().height = TAB_HEIGHT;
TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(
android.R.id.title);
tv.setTextColor(Color.WHITE);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) tv
.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
params.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
tv.setLayoutParams(params);
}
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
for (int i = 0; i < tabWidget.getChildCount(); i++) {
View v = tabWidget.getChildAt(i);
if (tabHost.getCurrentTab() == i) {
v.setBackgroundDrawable(getResources().getDrawable(
R.drawable.tab_bg1));
} else {
v.setBackgroundDrawable(getResources().getDrawable(
R.drawable.tab_bg2));
}
}
}
});
tabHost.setCurrentTab(0);
tabWidget.getChildAt(0).setBackgroundDrawable(
getResources().getDrawable(R.drawable.tab_bg1));
}
}
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:background="@null"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
</TabHost>
</LinearLayout>
以后补充...
分享到:
相关推荐
Android自定义Tab选项卡4行代码完成调用(Fragment+ViewPager组合) 此Demo博客地址:http://blog.csdn.net/u012814441/article/details/49720899
android自定义控件,实现选项卡功能。可通过自定义属性设置选项卡样式,且Tab的数目也可通过属性灵活设置,可设置为文本选项卡或图片选项卡,利用回调监听响应各Tab的点击事件,且设置方法和android原生控件设置点击...
EasyTabs让您可以轻松实现自定义选项卡控件
主要介绍了Android编程实现自定义Tab选项卡功能,结合完整实例形式分析了Android自定义tab选项卡的遍历、设置及属性操作相关技巧,需要的朋友可以参考下
主要介绍了Android Tablayout 自定义Tab布局的使用案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
左侧竖向选项卡TAB导航烂,支持viewpager,不依赖viewpager,支持自定义tab样式,自带切换动画
android 自定义实现TAB, 简化开发代码,提供效率
一个比较美观的圆角Tab选项卡切换效果.html一个比较美观的圆角Tab选项卡切换效果.html一个比较美观的圆角Tab选项卡切换效果.html
NULL 博文链接:https://jykenan.iteye.com/blog/855843
Android快速实现选项卡,几行代码实现Android选项卡界面,支持标准底部Tab自定义视图选项卡,头部文字选项卡。实现介绍请参考:http://www.csdn.net/
android 自定义中间带圆形按钮的底部导航控件.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android选项卡效果-MaterialTabs.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android 基于TabLayout实现的TAB页导航切换效果 仿今日头条底部的TAB选项卡效果,TabLayout与ViewPager结合使用可以达到点击tab更新ViewPager、滑动ViewPager更新Tab的效果。这种效果现在在PC端、移动设备端已经很...
灵活易用的Android自定义TabBar选项卡控件,支持Tab选项卡的任意View组合布局,支持事件接口回调,扩展性非常强大的选项卡,可用来排版任意样式的选项卡布局。
RadioGroup自定义选项卡样式
RadioButton实现底部带指示条的Tab选项卡三个和两个tab的都有
android--解决方案--自定义tabhost(动态添加选项+带自动水平滑动选项卡+手势切换选项卡及内容功能)
Android系统自带的TabHost控件很难看,这是一个自定义TabHost例子,显示在底部,类似于微博下面的Tab选项卡
仿Chrome浏览器风格可单独关闭的网页TAB选项卡插件,可以依次打开多个TAB,每个TAB上都有关闭按钮,可以单独被关闭,美化的也很漂亮,功能更人性化的网页选项卡插件,自带的示例运行于HTML5环境,各个功能都可充分...