感谢:http://blog.csdn.net/jevin05/article/details/6701148
最近搞sina微博,学到一个关于TabHost很不错的小技巧,分享之,共勉!
传统的TbaHost默认显示在屏幕上方,首先说一下如何显示在屏幕底部:设置TabWidget控件的android:layout_alignParentBottom="true"实现
TabWidget去除底部下划线:http://www.yoyong.com/archives/239
关于文章的主要内容通过RadioGroup来实现TabHost底部菜单
首先是由于农民伯伯将代码和一些信息已经贴出来了,所以我这里只做一些更改
Xml文件全部相同,只是java代码有所不同而已,因此这里只贴出java代码
农民伯伯的地址:http://www.cnblogs.com/over140/archive/2011/03/02/1968042.html
需要注意的是:TabWidget的id必须为@android:id/tabs
FrameLayout的id必须为@android:id/tabcontent
否则就会出错,这里引用的是系统组件id
如果要将TabActivity和一个布局文件绑定(这里的FrameLayout是内容的显示) 布局文件的内容必须定义为@android:id/tabcontent表示是页框的内容
TabActivity还需要绑定的另一个内容为TabWidget,id必须为@android:id/tabcontent,TabWidget是布局中导航的显示
FrameLayout的属性android:layout_height="0.0dip"
TabWidget的属性android:visibility="gone"
意为将内置的内容和导航条隐藏
TabHost是间接继承自ViewGroup,是控件级别的,TabActivity才是继承自ActivityGroup
知识写的比较离散 = =
java代码
public class MainActivity extends TabActivity implements OnCheckedChangeListener{
private TabHost tabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
this.setContentView(R.layout.maintabs); //用布局文件来定义主框架,如果不写这一句直接设置View的话会报空指针异常
tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec("Home").setIndicator("首页").setContent(new Intent(this, HomeActivity.class)));
tabHost.addTab(tabHost.newTabSpec("Meg").setIndicator("信息").setContent(new Intent(this, MsgActivity.class)));
tabHost.addTab(tabHost.newTabSpec("Info").setIndicator("资料").setContent(new Intent(this, UserInfo.class)));
tabHost.addTab(tabHost.newTabSpec("Search").setIndicator("搜索").setContent(new Intent(this, SearchActivity.class)));
tabHost.addTab(tabHost.newTabSpec("More").setIndicator("更多").setContent(new Intent(this, MoreActivity.class)));
RadioGroup radioGroup = (RadioGroup) this.findViewById(R.id.main_radio);
radioGroup.setOnCheckedChangeListener(this);//找到布局文件并监听
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.radio_button0:
tabHost.setCurrentTabByTag("Home");//使用TabHost对象通过Tag来设置需要显示的页面
break;
case R.id.radio_button1:
tabHost.setCurrentTabByTag("Meg");
break;
case R.id.radio_button2:
tabHost.setCurrentTabByTag("Info");
break;
case R.id.radio_button3:
tabHost.setCurrentTabByTag("Search");
break;
case R.id.radio_button4:
tabHost.setCurrentTabByTag("More");
break;
default:
break;
}
}
}
分享到:
相关推荐
使用 RadioGroup和TabHost 实现底部菜单栏,
TabHost实现底部菜单, 底部菜单选项卡主要是通过TabHost和RadioGroup实现
使用RadioGroup实现的底部导航菜单栏
用radiogroup和gridview模拟tabhost
模仿新浪微博底部導航欄,使用RadioGroup、TabHost、TabActivity實現
使用Tablayout和RadioGroup两种方式实现底部导航,使用Tablayout实现顶部导航
radiobutton 实现tabhost的功能,仿微博开发。
使用RadioGroup及Fragment来实现底部Tab效果
使用RadioGroup和RadioButton嵌套到Fragment里面,加载页面的时候,我们可以通过RadioButton选项,切换对应的Fragment
Fragment实现TabHost效果,fragment+radioGroup实现的效果
RadioGroup+FrameLayout实现底部导航页面,里面用到一个简单的工厂模式
Fragment + TabHost + RadioGroup 结合DEMO||Fragment + TabHost + RadioGroup 结合DEMO
android 高仿微信底部菜单 用自定义的radiobutton和radiogroup实现,能实现气泡数字的效果,viewpager+自定义的radiobutton+radiogroup
RadioGroup实现APP首页底部Tab的切换,原文链接:http://www.cnblogs.com/smyhvae/p/4463931.html
模仿新浪微博底部導航欄,使用RadioGroup、TabHost、Fragment實現
RadioGroup实现仿新浪微博的效果,文章地址:http://blog.csdn.net/chenleicpp/article/details/45534343
不用TabWidget而采用的是radiogroup方式
android开发中用tabhost+radiogroup实现底部菜单栏功能,和一个简单的布局应用,里面有三个activity的切换,能用于一般开发的框架搭建
使用RadioGroup+Viewpager+Fragment实现底部菜单栏和viewpager页面联动. viewpager里是碎片 点击菜单栏viewpager滚动, 滑动viewpager底部菜单栏跟着滚动 有问题欢迎指出!
本文将通过radiogroup和radiobutton实现组内信息的单选, 其中radiogroup就是将radiobutton进行分组,同一管理和控制 同时实现默认选中情况,获取默认值.