我是靠谱客的博主 落后枫叶,最近开发中收集的这篇文章主要介绍Fragment嵌套Fragment, TabLayout + ViewPager滑动问题 fragment10 和fragment11 代码一模一样 , 但是 fragment 11 不能滑动 , 代码如下所以在Fragment嵌套Fragment的时候,注意使用getChildFragmentManager()来管理子fragment就好了。,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
滑动问题
fragment10 和fragment11 代码一模一样 , 但是 fragment 11 不能滑动 , 代码如下
public class Fragment10 extends Fragment {
public static final String TAG = Fragment10.class.getSimpleName();
@BindView(R.id.tab_layout)
TabLayout tabLayout;
@BindView(R.id.viewpager)
ViewPager viewPager;
Unbinder unbinder;
List<String> titles = new ArrayList<>();
private ArrayList<Fragment> fragments = new ArrayList<>();
@Override
public void onAttach(Context context) {
super.onAttach(context);
Log.d(TAG, "onAttach");
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate");
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
View view = inflater.inflate(R.layout.fragment_10, container, false);
unbinder = ButterKnife.bind(this, view);
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
fragments.add(new FragmentTab());
fragments.add(new FragmentTab());
fragments.add(new FragmentTab());
titles.add("测试1");
titles.add("测试2");
titles.add("测试3");
viewPager.setAdapter(new FragmentStatePagerAdapter(getActivity().getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
});
tabLayout.setupWithViewPager(viewPager);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.d(TAG, "onActivityCreated");
}
}
后来才发现问题点 viewPager.setAdapter(new FragmentStatePagerAdapter(getActivity().getSupportFragmentManager())
Fragment嵌套Fragment实现页面切换滑动的效果。其实这个问题也很常见,主要是getFragmentManager()和getChildFragmentManager()这两个使用的一些小细节。
- getFragmentManager()所得到的是所在 fragment 的父容器的管理器
- getChildFragmentManager()所得到的是在 fragment 里面子容器的管理器
所以在Fragment嵌套Fragment的时候,注意使用getChildFragmentManager()来管理子fragment就好了。
换成这个问题就解决了
最后
以上就是落后枫叶为你收集整理的Fragment嵌套Fragment, TabLayout + ViewPager滑动问题 fragment10 和fragment11 代码一模一样 , 但是 fragment 11 不能滑动 , 代码如下所以在Fragment嵌套Fragment的时候,注意使用getChildFragmentManager()来管理子fragment就好了。的全部内容,希望文章能够帮你解决Fragment嵌套Fragment, TabLayout + ViewPager滑动问题 fragment10 和fragment11 代码一模一样 , 但是 fragment 11 不能滑动 , 代码如下所以在Fragment嵌套Fragment的时候,注意使用getChildFragmentManager()来管理子fragment就好了。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复