跑马灯虚拟项目总结

项目构思:

项目需求:按输入不同频率控制LED灯的亮灭

  1. UI设计构思:由项目设计书可知,页面分为两个部分,标题页和内容页,标题页主要是用来展示标题内容,根据标题页切换实现内容页的切换。还要能够实现页面间的滑动效果;根据需求可以用TabLayout+ViewPager+Fragment来实现。

对技术的理解:

TabLayout:继承自HorizontalScrollView,用作页面切换指示器,可以实现标题页部分和滑动效果;在这里,他只是一个用来存放标题页的容器。

Viewpager:视图翻页工具,提供了多页面切换的效果。这里它就是相当于一个容器,用来放Fragment的容器。

Fragment是什么呢?它可以理解为一个和Activity类似的东西,如果把Activity也看成一个容器的话,Fragment就是一个可以放在Activity中,比Activity要小的一个容器。也可以理解为他就是一个用来存页面的东西。

Fragment是碎片化的,两个或者多个Fragment可以一起放在一个容器中。也就是多个Fragment可以放在Activity/ViewPager中。

例如:这个项目的内容页就是由5个Fragment组成的,只是其中四个Fragment内容基本一致,可以放在一起处理。

那么这个实现点击标题就滑动到另一个页面的功能是怎么实现的呢?

显然需要用适配器来实现标题和下面的Fragment来进行适配;这就需要FragmentPagerAdapter这个适配器;在这个适配器中定义一个String数组,这个String数组里面的内容就是标题页的内容。那标题和Fragment里面装的内容是怎么绑定的,在适配器中有一个 public Fragment getItem(int position) 方法,参数position就代表你点击的是前面的String数组的第几个,从0开始;点击第一个就返回Fragment1;就是点击哪一个就返回哪一个Fragment;就实现了绑定。

怎么把页面装进Fragment里面呢?

和MainActivity装页面一样;MainActivity需要继承Activity,在写Fragment的类时也需要继承Fragment类;在继承Fragment的类里面的onCreate方法中通过inflater.inflate(R.layout.summary, container, false);可以把页面装进Fragment中。

由上可知,页面已经装进Fragment里面,Fragment也已经通过ViewPager的适配方法与标题进行了适配,下面就是TabLayout的作用了,tabLayout.setupWithViewPager(viewPager);这句话就把ViewPager和TabLayout联系在一起了,就是相当于把ViewPager的标题框起来。

Fragment里面的五个页面(四个基本一致简化为2个),

1.小灯频率的设置,就包括一个弹出TextView和一个EditText一个ToggleButton以及一个Button。

2.总结页面就是一个ListView,用listView.setAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1, data));可以直接对它进行适配。data是一个数组,里面的内容就是列表的内容。

  1. 逻辑部分:

主要是根据四个标签的状态以及先后顺序进行判断和排列。这里我们以Button的点击为前提进行判断,当button点击时,首先应该判断开关的状态(toggleButton.isCheck())s是否为true,为true则说明开关关着,此时不论用户输入什么都应该提醒用户打开开关;当开关打开时,用户输入的是(1--9)之外的数提醒用户输入1--9之间的整数。用户输入整数把设置好的Textview设置为可见。并且把此时小灯是几号和输入成功的频率保存用于对接。

猜你喜欢

转载自blog.csdn.net/psjasf1314/article/details/119212498