Android控件使用—TabHost底部导航
2015-06-12 16:54
429 查看
一个用tabhost做成的底部导航界面,由两部分组成,底部是一个tabwidget,里面放了RadioButton组成的RadioGroup,上面是一个framelayout,把framelayout的高度设置为0dp,比重设为1,就可以实现framelayout铺满剩下的屏幕;Radiobutton里面设置button=“@null”则可去掉选项框,设置drawabletop则可在文字上方设置图片,如果要图片实现点击跟没点击是不同图片的话,要重写一个drawable,然后drawabletop里面的图片资源为重写的drawable,重写的代码如下:
xml写好之后就在java中添加代码,首先将跳转activity定义赋值,
然后对radiobutton点击进行监听,根据ID判断,设置不同的Tag,Radiobutton的监听事件函数为onCheckedChanged();
然后将文字,图片跟跳转activity的事件添加到tab中:
这样就实现了用tabhost做导航,点击底部切换界面。
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ico_on_1" android:state_checked="true"/> <item android:drawable="@drawable/ico_1" android:state_checked="false"/> <item android:drawable="@color/white"></item> </selector>
xml写好之后就在java中添加代码,首先将跳转activity定义赋值,
this.AIntent = new Intent(this, OneActivity.class); this.BIntent = new Intent(this, TwoActivity.class); this.CIntent = new Intent(this, ThreeActivity.class); this.DIntent = new Intent(this, FourActivity.class);
然后对radiobutton点击进行监听,根据ID判断,设置不同的Tag,Radiobutton的监听事件函数为onCheckedChanged();
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { switch (buttonView.getId()) { case R.id.radio_button0: this.mTabHost.setCurrentTabByTag("0"); break; case R.id.radio_button1: this.mTabHost.setCurrentTabByTag("1"); break; case R.id.radio_button2: this.mTabHost.setCurrentTabByTag("2"); break; case R.id.radio_button3: this.mTabHost.setCurrentTabByTag("3"); break; } } });
然后将文字,图片跟跳转activity的事件添加到tab中:
private void setIntent() { this.mTabHost = getTabHost(); TabHost localtab = this.mTabHost; localtab.addTab(buildTabSpec("0", R.string.main_home, R.drawable.ico_1, this.AIntent)); localtab.addTab(buildTabSpec("1", R.string.zb, R.drawable.ico_2, this.BIntent)); localtab.addTab(buildTabSpec("2", R.string.sm, R.drawable.ico_3, this.CIntent)); localtab.addTab(buildTabSpec("3", R.string.yh, R.drawable.ico_4, this.DIntent)); } private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon, final Intent content) { return this.mTabHost .newTabSpec(tag) .setIndicator(getString(resLabel), getResources().getDrawable(resIcon)) .setContent(content); }
这样就实现了用tabhost做导航,点击底部切换界面。
相关文章推荐
- android listview 解决数据重复
- Android自定义View—自定义dialog的使用
- Android自动化测试之MonkeyRunner录制和回放脚本
- android 照片拍照问题
- Android学习笔记 :Android动画 tween,frame,property
- Android中callback(接口回调)机制
- IOS和Android的区别
- Android IOS WebRTC 音视频开发总结(二九)-- 安卓噪声消除交流
- android实现点赞动画
- android 手势密码
- Android 有关文件路径的常用方法
- android 系统Style,Theme,以及自定义模板(declare-style)
- Android app进入前的闪屏界面代码
- Android自定义View之快速实现下拉刷新, 点击加载更多ListView
- 2015必须推荐的Android框架,猿必读系列!
- 【Android studio】Rendering Problems:classes could not be instantiated 解决方法
- android开发EditText中添加图片
- android适配屏幕
- Android inline hook手记[转载]
- Android 使用Intent在活动之间传递数据