软工大作业——社团项目个人总结

完整项目链接: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%的时间来完成这个功能。但是我们会花费大量的时间去查找资料,我希望本课程能够提供一些有利于我们学习的网址。

 

posted @ 2019-12-10 12:06  31701067蔡滨滨  阅读(216)  评论(0编辑  收藏  举报