软工大作业——社团项目个人总结
完整项目链接:https://github.com/hkymygithub/ClubManage
一、个人分工
在这个项目中我主要负责主要界面的基本实现(不包括界面的美化,界面的美化工作由我们小组的另一位成员来实现)。
左边的图片是我界面的基本实现,右边的图片是我们小组另一位成员美化后的结果。
二、个人项目总结
虽然我的工作相较于其他小组的成员而言比较简单,但是我在完成自己任务的过程中遇到了许多困难,与此同时也收获良多。
①底部导航栏与顶部导航栏的嵌套实现。
对于我来所,单独地实现底部导航栏或顶部导航栏都不是一件困难的事情,但是,当我要在底部导航栏切换的界面当中在加入一个顶部导航栏,通过点击不同的导航来进行内部界面的切换来说,对我而言是一个巨大的挑战。单单通过闭门造车是不可实现的,于是我便在网上查找了大量的资料。在这个查找资料的过程中,我一开始找的资料都是对我并没有太大用处的东西,可以说纯粹地在浪费自己的时间。但是随着不同的尝试,我逐渐地学会了如何去甄别和筛选对我有很大用处的东西,而去剔除那些无用的东西。
一开始我本来打算使用Button来简单实现界面的切换,但是由于我的组员觉得这个不太好,没有切换的动画效果,且对我们本身提升自己的能力没有太大的帮助,不能够学习到什么新的知识,没有什么出彩的地方而否决了。于是我采用了下面的方法来进行界面切换。
(底部导航栏的实现)BottomNavigationView+Fragment
学习的地方:https://blog.csdn.net/nujun1222/article/details/80079345
首先我们需要在build.gradle中添加依赖(implementation 'com.google.android.material:material:1.0.0')
然后在activity_main布局文件中添加一个com.google.android.material.bottomnavigation.BottomNavigationView控件(导航栏)和一个LinearLayout控件(存放界面)。
其次我们要新建4个不同界面的布局文件和4个界面对应的Fragment类。
最后在MainActivity类中绑定按钮和界面,并实现切换功能。
(顶部导航栏的实现)TabLayout+ViewPage
学习的地方:https://www.jianshu.com/p/8341f7c919d8
以其中一个界面为例:
首先我们需要在build.gradle中添加依赖(implementation 'com.google.android.material:material:1.0.0')
然后在布局文件中添加一个com.google.android.material.tabs.TabLayout控件(导航栏)和一个androidx.viewpager.widget.ViewPager控件(存放界面)。
其次我们要新建4个不同界面的布局文件和4个界面对应的ViewPage类。
最后在ActiviytsPage类中绑定按钮和界面,并实现切换功能。
②可滑动的数据展示部分的实现
RecyclerView这个控件的使用。
我们首先先创建一个布局,类似于下图:
然后定义一个实体类,作为RecyclerView适配器的适配类型。
接下来需要创建一个自定义的适配器,这个适配器继承自ArrayAdapter,并将泛型指定为上一步定义的那个实体类。
最后在主函数使用init()方法初始化所有数据,在onCreate()方法中获取到RecyclerView实例,创建一个LinearLayoutManager对象,并将它设置到RecyclerView当中。接下来我们创建Adapter的实例,并将数据传入到Adapter的构造函数中,最后调用RecyclerView的setAdapter()方法来完成适配器设置。
学习的地方:教材 《第一行代码》第二版 郭霖
③界面的相对位置布局
不同的布局的布局方法也会有所不同,例如线性布局,相对布局,帧布局,百分比布局等等,这些布局相对位置的方法也是不同的,这需要我去学习,了解,且经过了这个项目的实践,我已经初步了解到了不同布局的相对位置的使用方法。
④弹出选择框
点击按钮,弹出一个单选框让你选择。
三、对课程的建议
在实现项目的时候与组员的交流是非常重要的,我觉得例会尽量每周一次,交流各自的进度,并且能够交流我们之间各自板块的融合。当然我们遇到新问题无法解决的时候,我们要通过80%的时间来学习新知识,而只用20%的时间来完成这个功能。但是我们会花费大量的时间去查找资料,我希望本课程能够提供一些有利于我们学习的网址。