功能说明
设计app的门户界面,类似于微信那样
主要功能如下:
有四个界面
通过点击导航栏的图片按钮切换界面
代码思路分析
编写布局文件
看一下最终实现的效果,分析布局文件的编写
这个界面是app打开时的默认界面。可以看出这个界面由三部分组成
页面顶部的标题栏
中间的不同界面切换
底部的导航栏
这样我们就需要写多个xml布局文件,并将他们组合到一个xml布局文件中。
首先编写top.xml文件,实现顶部的标题栏
然后编写底部的导航栏bottom.xml。这个布局文件中包含四个ImageButton,并且每个ImageButton都配有文字,这个实现需要一个水平布局的LinerLayout嵌套四个垂直布局的LinerLayout
中间的界面切换部分需要用Fragment实现,因为我们需要用底部导航栏的四个按钮控制显示不同的界面,这样就需要编写四个不同的xml文件,对应底部导航栏的四个按钮
总结一下:
top.xml:顶部标题栏
bottom.xml:底部导航栏
chat.xml:聊天界面
friends.xml:朋友界面
book.xml:通讯录界面
setting.xml:设置界面
activity_main.xml:汇总界面,中间要写一个Fragment放界面
然后需要编写控制代码逻辑的Java文件
这里最重要的是Fragment,这里我们需要对每一个Fragment(对应一个xml布局文件)新建一个Fragment类
ChatFragment.java
FriendsFragment.java
BookFragment.java
SettingFragment.java
在MainActivity.java中控制操作逻辑
首先要new出各个界面(Fragment)的对象,还有有一个FragmentManager管理所有的Fragment
然后获取到各种控件,包括TextView,ImageButton,LinerLayout
这里我们对导航栏的所有LinerLayout设置点击事件,通过id区分,每次点击首先将所有的按钮设置为未选中状态,并且将所有Fragment隐藏(hide),然后通过不同序号选择对应按钮设置为选中状态,然后将指定F