问题:在程序中想办法先初始化此Fragment,比如app中首页四个Tab分页,由第一个分页向第三个分页post事件时,如果刚进入app且没有操作的情况下,第三个Fragment一般都是未初始化的,这种情况可以在进入默认第一个分页时先进入第三个分页,然后立马再切换到第一个分页,这样用户是看不出切换过程的,而第三个Fragment也初始化了。
解决:
方法1.
- setTabSelection(2);//先选择第三个Tab分页
- setTabSelection(0);//然后立马切换到默认的第一个Tab分页
方法2.采用延时post的形式。即先切换到要post事件的Fragment,等待几十毫秒后再post事件,这样既可解决未初始化问题。
bottom_tab_bar.init(getSupportFragmentManager()) .setFontSize(12) .setTabPadding(12, 6, 22) .setChangeColor(getResources().getColor(R.color.zhuzhi_bottom_blue), getResources().getColor(R.color.all_3)) .addTabItem("消息", R.mipmap.message, R.mipmap.message_gray, MyNewsFragment.class) .addTabItem("成员", R.mipmap.people_icon, R.mipmap.people_bule, MemberFragment.class) .addTabItem("课程", R.mipmap.course_bule, R.mipmap.course_gray, UncourseFragment.class) .setTabBarBackgroundColor(Color.WHITE) .isShowDivider(false) .post(new Runnable() { @Override public void run() { bottom_tab_bar.setCurrentTab(1); bottom_tab_bar.setCurrentTab(0); } });readme:
本人用的是一个第三方的BottomTabBar的。刚开始设置
bottom_tab_bar.setCurrentTab(1); bottom_tab_bar.setCurrentTab(0); 不行,后来放在post实现了。