@TOCAS微信页面编写
AS微信页面编写
移动互联网开发(AS) 课程第一次作业
需求
- 页面具有标题“微信”
- 页面具有中间显示框
- 页面具有底部选择框,并且具有选择事件
- 页面底部选择框在进行改变的时候,我们需要中间显示框的页面同步改变
- 页面的布局清晰
项目完成效果展示
前端页面布局
在主页面上使用FrameLayout组件作为中间的主要显示区域,顶部和底部则使用include进行引入。页面布局及尺寸参照老师课程内容居多。
/*主页布局代码*/
<?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:orientation="vertical">
<include layout="@layout/top" />
<FrameLayout
android:id="@+id/id_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>
<include layout="@layout/bottom" />
</LinearLayout>
对于事件功能的控制
在底部点击后,中间的fragment和底部的图标颜色会进行选中/未选中的颜色更替:
- 监听我们对底部控件的点击
- 将监听到的底部点击事件,相应的传递给fragment的事件控制
对点击事件的监听:
private void initEvent(){
mTabweixin.setOnClickListener(this);
mTabfrd.setOnClickListener(this);
mTabcontact.setOnClickListener(this);
mTabsettings.setOnClickListener(this);
}
对于fragment获取监听并且返回相应,使用switch:
private void selectfragment(int i){
FragmentTransaction transaction = fm.beginTransaction();
hidefragment(transaction);
switch (i) {
case 0:
transaction.show(mTab01);
mImgweixin.setImageResource(R.drawable.tab_weixin_pressed);
break;
case 1:
transaction.show(mTab02);
mImgfrd.setImageResource(R.drawable.tab_find_frd_pressed);
break;
case 2:
transaction.show(mTab03);
mImgcontact.setImageResource(R.drawable.tab_address_pressed);
break;
case 3:
transaction.show(mTab04);
mImgsettings.setImageResource(R.drawable.tab_settings_pressed);
break;
default:
break;
}
transaction.commit();
}
参考博客:https://blog.csdn.net/qq_43739523/article/details/104959676