TabHost结合RadioButton实现主页的导航效果
- 布局文件的设置,如下
- <?xml version="1.0" encoding="utf-8"?>
- <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/tabhosts"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:background="#fff" >
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
- <FrameLayout
- android:id="@android:id/tabcontent"
- android:layout_width="match_parent"
- android:layout_weight="1.0"
- android:layout_height="0.0dp" />
- <TabWidget
- android:visibility="gone"
- android:id="@android:id/tabs"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:orientation="horizontal"/>
- <RadioGroup
- android:layout_gravity="bottom"
- android:gravity="center"
- android:id="@+id/main_rdg"
- android:background="@drawable/main_radio_bg"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal" >
- <RadioButton
- style="@style/bottom_radio_style"
- android:id="@+id/rd_index"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:text="@string/index"
- android:gravity="center_horizontal"
- android:drawableTop="@drawable/icon_tab_homepage_checked"
- android:layout_weight="1"
- />
- <RadioButton
- style="@style/bottom_radio_style"
- android:id="@+id/rd_near"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:text="@string/near"
- android:drawableTop="@drawable/icon_tab_nearby_checked" />
- <RadioButton
- style="@style/bottom_radio_style"
- android:id="@+id/rd_own"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:text="@string/own"
- android:drawableTop="@drawable/icon_tab_mine_checked"/>
- <RadioButton
- style="@style/bottom_radio_style"
- android:id="@+id/rd_more"
- android:text="@string/more"
- android:drawableTop="@drawable/icon_tab_more_checked"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1" />
- </RadioGroup>
- </LinearLayout>
- </TabHost>
- 通过样式文件更改radioButton的效果
- <?xml version="1.0" encoding="utf-8"?>
- <resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="bottom_radio_style">
- <item name="android:button">@null</item>
- <item name="android:gravity">center</item>
- <item name="android:background">@drawable/main_bottom_rd</item>
- </style>
- </resources>
- 选择效果(选择一个标签是的一个选择效果)
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/main_radio_select"></item>
- <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/main_radio_select"></item>
- </selector>
- activity中的代码设置如下:
- package cn.liu.activity;
- public class MainActivity extends ActivityGroup {
- protected static final String TAG = "MainActivity";
- private TabHost tabHost = null;
- private RadioGroup rGroup;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // 设置手机全屏显示
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);
- setContentView(R.layout.main);
- // 通过findviewbyId这种方式找到tabhost,就必须要调用
- // setup方法,而且如果当前类,没有集成ActivityGroup,会报E/AndroidRuntime(380): java.lang.RuntimeException: Unable to start activity
- ComponentInfo{cn.liu.eat/cn.liu.activity.MainActivity}: java.lang.IllegalStateException: Did you forget to call 'public void
- setup(LocalActivityManager activityGroup)且setup必须要设置成this.getLocalActivityManager()这样才不会出问题
- tabHost = (TabHost) this.findViewById(R.id.tabhosts);
- tabHost.setup(this.getLocalActivityManager());
- TabSpec tabSpec1 = tabHost.newTabSpec("tab1").setIndicator("tab1")
- .setContent(new Intent(this, HomeActivity.class));
- TabSpec tabSpec2 = tabHost.newTabSpec("tab2").setIndicator("tab2")
- .setContent(new Intent(this, NearActivity.class));
- TabSpec tabSpec3 = tabHost.newTabSpec("tab3").setIndicator("tab3")
- .setContent(new Intent(this, MineActivity.class));
- TabSpec tabSpec4 = tabHost.newTabSpec("tab4").setIndicator("tab4")
- .setContent(new Intent(this, MoreActivity.class));
- tabHost.addTab(tabSpec1);
- tabHost.addTab(tabSpec2);
- tabHost.addTab(tabSpec3);
- tabHost.addTab(tabSpec4);
- tabHost.setCurrentTab(0);
- rGroup = (RadioGroup) this.findViewById(R.id.main_rdg);
- rGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- switch (checkedId) {
- case R.id.rd_index:
- tabHost.setCurrentTabByTag("tab1");
- break;
- case R.id.rd_near:
- tabHost.setCurrentTabByTag("tab2");
- break;
- case R.id.rd_own:
- tabHost.setCurrentTabByTag("tab3");
- break;
- case R.id.rd_more:
- tabHost.setCurrentTabByTag("tab4");
- break;
- }
- }
- });
- }
- }
TabHost结合RadioButton实现主页的导航效果的更多相关文章
- 如何使用RadioGroup和RadioButton实现FragmentTabHost导航效果?
目录: 一.概述 最近在做一个新闻类结合社区的APP的时候,需要添加一个侧滑菜单的效果,考虑到可以使用DrawerLayout布局,但是问题是使用了 DrawerLayout布局后,主页内容应该是一个 ...
- 学习使用 CSS3 制作网站面包屑导航效果
作为最重要的导航展示形式之一,面包屑导航能够让用户更清楚的知道他们所在页面的层次结构,让他们可以方便的导航到上一层页面.在本教程中,您将学习如何使用 CSS3 技术创建自己的面包屑导航效果. 效果演示 ...
- 基于 jQuery 实现的精致作品集图片导航效果
今天,我们要用 jQuery 来创建一个作品集图像的导航模板.我们的想法是,以分组的方式显示一组作品集,并通过二维的方式(水平/垂直)来浏览.任一箭头或当前图像下方的小盒子可以作为导航使用. 在线演示 ...
- Pace.js – 超赞的页面加载进度自动指示和 Ajax 导航效果
在页面中引入 Pace.js 和您所选择主题的 CSS 文件,就可以让你的页面拥有漂亮的加载进度和 Ajax 导航效果.不需要挂接到任何代码,自动检测进展.您可以选择颜色和多种效果,有简约,闪光灯, ...
- CSS实现商城分类导航效果(hover选择器)
学完制作出这个导航效果之后,收获最多的是了解了hover选择器的功能,:hover 选择器用于选择鼠标指针浮动在上面的元素.在鼠标移到元素上时向此元素添加特殊的样式(CSS).例如:改变鼠标悬停处的元 ...
- 第74天:jQuery实现图片导航效果
图片导航效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- css之纯css实现流程导航效果
:::tip 使用纯css线上 流程导航效果. 本文统一采取 flex 布局 ,你也可以采用其他布局实现,核心原理不变 ::: ## 方法一 利用裁剪 该方法IE下不支持 利用裁剪 clip ...
- Android 使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧滑导航效果
在以前,做策划导航的时候,最常用的组件便是SlidingMenu了,当初第一次用它的时候觉得那个惊艳啊,体验可以说是非常棒. 后来,Android自己推出了一个可以实现策划导航的组件DrawerLay ...
- Android商城开发系列(三)——使用Fragment+RadioButton实现商城底部导航栏
在商城第一篇的开篇当中,我们看到商城的效果图里面有一个底部导航栏效果,如下图所示: 今天我们就来实现商城底部导航栏,最终效果图如下所示: 那么这种效果是如何实现,实现的方式有很多种,最常见的就是使 ...
随机推荐
- heibernate增删改查总结一下自己的不足
难点也就我不熟悉的是数据库语句的书写,要加强复杂查询语句的书写 /* 简单的在共享类中已经可以用的了 * 总结: * * --------------------------------------查 ...
- PHP替换数据库的换行符
//php 有三种方法来解决 //1.使用str_replace 来替换换行 $str = str_replace(array("\r\n", "\r", &q ...
- PTHREAD_MUTEX_INITIALIZER问题
PTHREAD_MUTEX_INITIALIZER 与 expected expression before ‘{’ token 在进行 Posix thread 编程时,出现以下编译错误:err ...
- C# Activator.CreateInstance()
C#在类工厂中动态创建类的实例,所使用的方法为: 1. Activator.CreateInstance (Type) 2. Activator.CreateInstance (Type, Objec ...
- [转]Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...
- Vijos1834 NOI2005 瑰丽华尔兹 动态规划 单调双端队列优化
设dp[t][x][y]表示处理完前t个时间段,钢琴停留在(x,y)处,最多可以走多少个格子 转移时只需逆着当前倾斜的方向统计len个格子(len为时间区间的长度,len=t-s+1),如果遇到障碍就 ...
- (二)跟我一起玩Linux网络服务:BIND的自动部署(附上完整的代码)
2015-03-24 如果看了我之前写的文章 DNS服务——BIND(/etc/named.conf./var/named)设置实现和解释,再来看这篇文章,你会发现部署BIND是件很简单的事情 如 ...
- sphinx (coreseek)——2、区段查询实例
首先需要知道区段查询的定义: 索引系统需要通过主查询来获取全部的文档信息,一种简单的实现是将整个表的数据读入内存,但是这可能导致整个表被锁定并使得其他操作被阻止(例如:在MyISAM格式上的INSER ...
- 解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误
重新启动服务器,访问web服务发现无法浏览,登陆服务器之 后进到nginx使用./nginx -s reload重新读取配置文件,发现报nginx: [error] open() "/usr ...
- web字体格式转换
@font-face { font-family: 'emotion'; src: url('emotion.eot'); /* IE9*/ src: url('emotion.eot?#iefix' ...