电商式导航栏,多Fragment切换
本文默认在已经搭建好的框架上进行开发
界面构思示意图

设计思路
在底部的LinearLayout中添加相应的图标,然后设置tag绑定相应的 Fragment数组对应的下标值,再点击切换的时候,根据获取到的tag值,取出数组中对应下标的Fragment,在通过相关方法显示。
封装目标:只需添加相应的按钮对象和相应的视图即可,然后在Activity中显示即可。先创建可切换的Fragment的基类BottomItemFragment(实现一个双击退出功能)
// 定义为抽象类即每个itemfragment的基类
public abstract class BottomItemFragment extends MyFragment implements View.OnKeyListener{
// 当前按下返回按钮的时间
private long mExitTime = 0;
// 双击返回键之间的延迟
private static final int EXIT_TIME = 2000;
@Override
public void onResume(){
super.onResume();
View rootView = getView();
// 防止双击退出失效
if (rootView!=null){
rootView.setFocusableInTouchMode(true);
rootView.requestFocus();
rootView.setOnKeyListener(this);
}
}
@Override
public boolean onKey(View v, int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
if ((System.currentTimeMillis() - mExitTime) > EXIT_TIME) {
Toast.makeText(getContext(), "双击退出", Toast.LENGTH_SHORT).show();
mExitTime = System.currentTimeMillis();
} else {
_mActivity.finish();
if (mExitTime != 0) {
mExitTime = 0;
}
}
return true;
}
}
}
- 底部导航栏按钮对象的封装(这边的icon用的是字体图标,不明白的请移步我的博客)
- 字体图标库的使用链接
public final class BottomTabBean {
private final CharSequence ICON;
private final CharSequence TITLE;
public BottomTabBean(CharSequence ICON, CharSequence TITLE){
this.ICON = ICON;
this.TITLE = TITLE;
}
public CharSequence getICON(){
return

本文介绍如何在Android中基于单Activity和多Fragment框架开发电商式的底部导航栏,实现多Fragment之间的切换。首先,利用LinearLayout添加图标并绑定Fragment数组下标,点击时根据tag值切换相应Fragment。接着,创建BottomItemFragment基类,并封装底部导航按钮对象,使用字体图标库。通过ItemBuilder将Fragment和按钮绑定到LinkedHashMap集合。最后,设置根Fragment布局和底部按钮布局,创建BaseBottomFragment完成封装。在Activity中调用setRootFragment方法展示MyBottomFragment页面。

8107

被折叠的 条评论
为什么被折叠?



