安卓TobHost实现TabBar
2016-01-13 17:25
169 查看
源代码下载点击这里
运行效果如下:
实现步骤:
创建目录结构如下:
MainActivity.java代码如下:
其他几个 .java类都继承与Activity就可以。这里不一一叙述了。
chat_home_btn.xml代码如下:
其他的几个类似
activity_main.xml代码如下:
其他的几个布局文件都可以随便写。
准备好八张图片,要规格大小一样的,还要有高亮和不高亮之分。
因为点击之后可以显示出不同的效果需要。
运行效果如下:
实现步骤:
创建目录结构如下:
MainActivity.java代码如下:
package com.example.jiayaoandroid; import android.os.Bundle; import android.app.TabActivity; import android.content.Intent; import android.widget.RadioGroup; import android.widget.TabHost; import android.widget.RadioGroup.OnCheckedChangeListener; public class MainActivity extends TabActivity implements OnCheckedChangeListener { private TabHost tabHost; private RadioGroup radioderGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tabHost=this.getTabHost(); tabHost.addTab(tabHost.newTabSpec("1").setIndicator("1").setContent(new Intent(this,HomeActivity.class))); tabHost.addTab(tabHost.newTabSpec("2").setIndicator("2").setContent(new Intent(this,CookbookActivity.class))); tabHost.addTab(tabHost.newTabSpec("3").setIndicator("3").setContent(new Intent(this,ExchangeActivity.class))); tabHost.addTab(tabHost.newTabSpec("4").setIndicator("4").setContent(new Intent(this,MyActivity.class))); radioderGroup = (RadioGroup) findViewById(R.id.main_radio); radioderGroup.setOnCheckedChangeListener(this); radioderGroup.check(R.id.mainTabs_radio_home);//默认第一个按钮 } @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub switch(checkedId){ case R.id.mainTabs_radio_home: tabHost.setCurrentTabByTag("1"); break; case R.id.mainTabs_radio_menu: tabHost.setCurrentTabByTag("2"); break; case R.id.mainTabs_radio_exchange: tabHost.setCurrentTabByTag("3"); break; case R.id.mainTabs_radio_my: tabHost.setCurrentTabByTag("4"); break; } } }
其他几个 .java类都继承与Activity就可以。这里不一一叙述了。
chat_home_btn.xml代码如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/tabbar_home_highlighted" android:state_checked="true" /> <item android:drawable="@drawable/tabbar_home"/> </selector>
其他的几个类似
activity_main.xml代码如下:
<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" tools:context=".MainActivity" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0.0dip" android:layout_weight="1.0" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:visibility="gone" /> <RadioGroup android:id="@+id/main_radio" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/maintab_toolbar_bg" android:orientation="horizontal" > <RadioButton android:id="@+id/mainTabs_radio_home" android:button="@null" android:layout_weight="1" android:gravity="center" android:drawableTop="@drawable/chat_home_btn" android:text="首页" /> <RadioButton android:id="@+id/mainTabs_radio_menu" android:button="@null" android:layout_weight="1" android:gravity="center" android:drawableTop="@drawable/chat_cookbook_btn" android:text="菜谱" /> <RadioButton android:id="@+id/mainTabs_radio_exchange" android:button="@null" android:layout_weight="1" android:gravity="center" android:drawableTop="@drawable/chat_exchange_btn" android:text="交流" /> <RadioButton android:id="@+id/mainTabs_radio_my" android:button="@null" android:layout_weight="1" android:gravity="center" android:drawableTop="@drawable/chat_my_btn" android:text="我的" /> </RadioGroup> </LinearLayout> </TabHost>
其他的几个布局文件都可以随便写。
准备好八张图片,要规格大小一样的,还要有高亮和不高亮之分。
因为点击之后可以显示出不同的效果需要。
相关文章推荐
- C#中方法参数 ref 与 out 的区别
- 使用Navicat for Oracle工具连接oracle的图文教程
- 出现“org.hibernate.QueryException: could not resolve property”错误的解决
- Android Capture Android System Audio
- [转] N-Gram模型
- C# ConfigurationManager读取app.config
- [精华] 数据库设计技巧
- hdoj--1162--Eddy's picture(最小生成树)
- ios Xcode7.2下创建本地化语言Localizable.strings
- 01-UI基础-04-02-UITableView补充
- LBS中从数据库查询某经纬度2KM范围内的数据 - 针对大数据量的性能优化
- 2分钟快速集成支付宝快捷支付
- AndroidStudio 配置Git 及提交项目至Githup
- ListView(ScrollView)嵌套ListView、GridView显示不全,内容大于一行计算的高度不正确的解决办法
- eclipse注释模板
- 【Objective-C学习记录】第四十二天
- 文件的基础
- Linux 软连接 & 硬链接
- SQL_3_表达式、条件语句与运算
- [转] Markdown