在片段中添加 Viewpager

Posted

技术标签:

【中文标题】在片段中添加 Viewpager【英文标题】:Add Viewpager in fragment 【发布时间】:2016-09-17 16:53:21 【问题描述】:

您好,我使用片段创建了我的应用程序,我需要在其中一个片段中实现viewpager(因为viewpager 用户可以在不同信息之间滑动(关于使用我当前正在开发的应用程序。我假设会有是 3 到 5 个带有文本和详细信息的视图))。波纹管是当前片段的代码。你们能给我一个想法,在片段中实现Viewpager 的最佳方法是什么,假设有 3 个视图,每个视图上都会有 3 或 4 个东西(Imageview、Textview 等)。我已经在其他活动中实现了Viewpager,但这是我第一次在片段中实现它。它的逻辑是什么。我尝试使用谷歌,但听起来很复杂。

public class AboutSectionFragment extends Fragment   


    // The onCreateView method is called when Fragment should create its View object hierarchy,
    // either dynamically or via XML layout inflation.
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) 
        View rootView = inflater.inflate(R.layout.about_section, parent, false);

        // Defines the xml file for the fragment
        return rootView ;
    

    // This event is triggered soon after onCreateView().
    // Any view setup should occur here.  E.g., view lookups and attaching view listeners.
    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) 

    
    

【问题讨论】:

【参考方案1】:

我在片段中使用了 ViewPager,它对我来说工作正常。

片段类

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        View view = inflater.inflate(R.layout.home_content, container, false);
        fragments = getFragmentsList();
        pagerAdapter = new HomeViewPagerAdapter(getChildFragmentManager(),fragments);
        ViewPager = (ViewPager) view.findViewById(R.id.Home_View_Pager);
        ViewPager.setAdapter(pagerAdapter);

 private ArrayList<Fragment> getFragmentsList()
    fragments = new ArrayList<>();
    fragments.add(HomeViewPagerFragment.getInstance());
    fragments.add(HomeViewPagerFragment.getInstance());
    fragments.add(HomeViewPagerFragment.getInstance());
    fragments.add(HomeViewPagerFragment.getInstance());
    fragments.add(HomeViewPagerFragment.getInstance());

    return fragments;

ViewPager 片段类

public class HomeViewPagerFragment extends Fragment 
    public static HomeViewPagerFragment getInstance()
        HomeViewPagerFragment fragment = new HomeViewPagerFragment();
        return fragment;
    
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        View view = inflater.inflate(R.layout.home_pager_fragment_layout,container,false);
        return view;
    

【讨论】:

以上是关于在片段中添加 Viewpager的主要内容,如果未能解决你的问题,请参考以下文章

如何在 FragmentPagerAdapter 中添加片段标签以便稍后引用片段?

在片段中添加按钮? [复制]

在片段中添加 Viewpager

在浏览量滑动上添加新片段

在片段中动态添加文本视图

在片段中添加 ListView