欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是项目实操,以智者精选项目为例,编写一个Android app的入口关联菜单栏逻辑。

这是要实现的菜单栏组件展示效果,下面就是教大家如何制作的步骤:

  1. APP的菜单栏是把一级页面Frame组合起来,并实现各个Frame之间交互的切换跳转。首先创建菜单栏的布局文件activity_main.xml,然后创建入口文件MainActivity,最后在MainActivity中关联各个Frame文件和实现Frame之间的切换跳转逻辑。

2、activity_main.xml布局文件编写的代码是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:orientation="vertical"><!-- ViewPager -->
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
<com.zhjd.android.view.NoScrollViewPager android:id="@+id/main_viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1">
</com.zhjd.android.view.NoScrollViewPager>
<View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#787878"/><!-- RatioGroup -->
<RadioGroup android:id="@+id/content_rg" android:layout_width="match_parent" android:layout_height="53dp" android:orientation="horizontal">
<RadioButton android:drawableTop="@drawable/selector_main" android:id="@+id/content_rb_home" style="@style/content_rb_style" android:paddingTop="8dp"/>
<RadioButton android:drawableTop="@drawable/selector_rewen" android:id="@+id/content_rb_order" style="@style/content_rb_style" android:paddingTop="8dp"/>
<RadioButton android:drawableTop="@drawable/selector_mine" android:id="@+id/content_rb_mine" style="@style/content_rb_style" android:paddingTop="8dp"/>
</RadioGroup>
</LinearLayout>
</LinearLayout>

3、MainActivity文件关联各个Fragment的部分代码是:

private void initData() {mData = new ArrayList<>();mData.add(new HomeFragment());mData.add(new ReWenFragment());mData.add(new MyFragment());mMainViewpager.setAdapter(new MainViewPagerAdapter(getSupportFragmentManager()));
}

4、MainActivity文件中实现Frame之间切换跳转逻辑的部分代码是:

private void initListener() {mContentRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {
changeRGroupAndViewPager(checkedId, 0);
}
});
}private void changeRGroupAndViewPager(int checkedId, int curposition) {if (checkedId != 0) {//然后根据id,改变int position = 0;switch (checkedId) {case R.id.content_rb_home:
position = 0;break;case R.id.content_rb_order:
position = 1;break;case R.id.content_rb_mine:
position = 2;break;
}mMainViewpager.setCurrentItem(position);
} else {//肯定,就是根据position来改变,viewpager的位置了int rbId = 0;switch (curposition) {case 0:
rbId = R.id.content_rb_home;break;case 1:
rbId = R.id.content_rb_order;break;case 2:
rbId = R.id.content_rb_mine;break;
}mContentRg.check(rbId);
}
}

以上几个步骤,是实现菜单栏逻辑的整体思路,可以按照这个思路去多练习,具体的全部代码请参考我提供的开发框架源码。

开头:人人都可写代码-Android零基础编程-序言-01

下一篇:人人都可写代码-Android零基础编程-线性布局09

qtdesigner怎么实现菜单栏跳转_人人都可写代码-Android零基础编程-app 入口菜单栏实操08...相关推荐

  1. datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-发布活动界面实操07...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个发布活动界面的H5. 这是要实现的H5发布活动界面展示效果,下面就是教大家如何制作的步骤: 1.在views的项目s ...

  2. android 按钮顶级效果_人人都可写代码-Android零基础编程-相对布局11

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是:Android界面布局中的相对布局. 1.RelativeLayout的概述 (1) RelativeLayout是一个允许子视图相对 ...

  3. android 不通过数据线打印日志_人人都可写代码-Android零基础编程-开发调试、APK编译04...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,讲解Android开发中如何调试代码程序,开发完后如何打包成可发布的apk文件. 开发调试 在开发中,难免我们会遇到BUG,快速定位问 ...

  4. datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-首页界面实操06...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个首页界面的H5. 这是要实现的H5首页界面展示效果,下面就是教大家如何制作的步骤: 1.在views的项目smart ...

  5. h5可以获取本机手机号码么_人人都可写代码-H5零基础编程-登录界面实操05

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个登录界面的H5. 这是要实现的H5登录界面展示效果,手机号+验证码的登录方式:下面就是教大家如何制作的步骤: 1.在 ...

  6. idea shell 中的函数 跳转_关于初次写微信小程序的注意事项(以简单的日历手账为实例) - 幻术是中二

    一.环境配置 首先,制作微信小程序需要到官网注册账号并且下载微信开发者工具. 在官网完善小程序的信息,即可得到小程序AppID.在使用小程序·云开发需要使用此AppID. 打开新建的小程序,可以看到以 ...

  7. swiftui 跳转_酷!苹果推出 SwiftUI,提高编程效率

    (给iOS大全加星标,关注iOS动态) 原创整理:iOS大全(id: iOShub) 北京时间 6 月 4 日凌晨 WWDC 2019 大会上,苹果软件工程高级副总裁 Craig Federighi ...

  8. java里有没有 0的使用_请问有没有人有零基础Java基础习题?

    第一组: 1.下面哪些是合法的变量名? A(2variable //不能以数字开头 B. (variable2 //不能用点和空格 //不能用点和空格 C. (_whatavariable D(_3_ ...

  9. oc引导win方法_安装win10+黑苹果双系统零基础教程(图文)

    一.准备工作 准备8g以上的U盘 系统镜像,格式注意是.dmg,我示范的版本为mac 10.13.3 二.开始动手 首先进行分盘 选择磁盘管理 将你需要分盘的硬盘压缩 新建简单卷,一路操作下去,自己命 ...

最新文章

  1. js 数据类型和转化
  2. 伺服驱动器接线怎么画_百格拉伺服驱动器维修常见故障现象及处理方法
  3. Javascript 对象二(Number、String、Boolean、Array、Date、Math、RegExp)
  4. Pro ASP.NET 4 CMS
  5. 作者:王志强(1975-),男,中国标准化研究院高新技术与信息标准化研究所副研究员、副所长。...
  6. 暑假集训-8.05总结
  7. 微信小程序怎么在wxml中插入多个图片_闲聊微信小程序开发框架(二)
  8. 底部显示水平滚动_LG专利展示带有可滚动显示屏和触控笔的智能手机
  9. 解决spring的xml文件打开没有namespace等操作选项的问题
  10. java 用户、角色、权限数据库设计
  11. Spring Boot 消息
  12. python 灰度图像素灰度值求和_如何在python中更改灰度图像中特定类型的像素值?...
  13. bash 运行可执行文件hello 报错 No such file or directory
  14. 概率论的学习和整理--番外4:学习期望之前,先学习平均数(包括算术平均数,几何平均数,调和平均数等),众数,中位数等概念差别。
  15. c语言pow函数原型_C语言pow函数问题
  16. D. Graph and Queries (并查集+线段树)
  17. [Transformer] PVT系列:PVT CPVT Twins
  18. 单片机实验秒表设计程序c语言,如何使用单片机实现秒表的设计
  19. 计算机二级不能使用快捷键,你不可不知的几个Office2010另类快捷键_计算机二级_Office快捷键_Office考试_课课家...
  20. win10安装Geany编辑器

热门文章

  1. CSS布局之品字布局
  2. Android 快速选择联系人
  3. Hadoop原理及部署初探
  4. linux下安装expect解决方法
  5. XenServer中Fast Copy与Full Copy的区别
  6. Coinbase调查发现,BCH上市前没有发生不当交易
  7. nacos1.0.0 服务管理使用mysql
  8. C++编写Config类读取配置文件
  9. 【ASP.NET】ASP.NET中权限验证使用OnAuthorization实现
  10. window下从硬盘安装ubuntu双系统