【问题标题】:ViewPager inside a Fragment (NestedFragments)片段内的 ViewPager(嵌套片段)
【发布时间】:2015-03-19 00:43:14
【问题描述】:

我的应用程序有一个带有导航抽屉的主要活动,它允许应用程序在片段之间导航。导航抽屉的每个项目列表显示一个片段。

在其中一个片段中,我想要一个 ViewPager,这就是我卡住的地方。如果我没记错的话,这是另一个片段(嵌套片段)中的片段,但我无法做到这一点。

这是包含 ViewPager 的片段的代码 Seccion1.java

import android.app.Fragment;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.List;

public class Seccion1 extends Fragment {

    ViewPager vp;

    private List<android.support.v4.app.Fragment> getFragments(){
        List<android.support.v4.app.Fragment> list = new ArrayList<android.support.v4.app.Fragment>();
        list.add(ModelFragment.newInstance("Hola como andas", "descriociones"));
        list.add(ModelFragment.newInstance("0895452125x", "#FFFFEF59"));
        list.add(ModelFragment.newInstance("22 Mart", "#FF9C63FF"));
        list.add(ModelFragment.newInstance("Sak", "#72a83b"));
        list.add(ModelFragment.newInstance("Android Studio", "#a83b97"));
        return list;
    }

    //@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.seccion1, container, false);

        vp = (ViewPager)rootView.findViewById(R.id.vp);

        //vp.setPageTransformer(true, new RotateDownTransformer());
        ControllerFragment cf = new ControllerFragment(getChildFragmentManager(), getFragments());
        vp.setAdapter(cf);

        return rootView;
    }
}

我不知道如何修复这条线:

ControllerFragment cf = new ControllerFragment(getChildFragmentManager(), getFragments());

这里是ControllerFragment代码 ControllerFragment.java

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.List;

public class ControllerFragment extends FragmentPagerAdapter {
    List<Fragment> fragments;
    Context context;

    public ControllerFragment(FragmentManager fm, List<Fragment> fragments){
        super(fm);
        this.fragments = fragments;
    }

    public Fragment getItem(int position){
        return fragments.get(position);
    }

    public int getCount(){
        return fragments.size();
    }

    public Object instantiateItem(View view, int position){
        RelativeLayout relativeLayout = (RelativeLayout)view.inflate(context, R.layout.custom_fragment, null);
        TextView tv_text = (TextView)relativeLayout.findViewById(R.id.tv_text);
        TextView tv_description = (TextView)relativeLayout.findViewById(R.id.tv_description);
        ((ViewPager) view).addView(relativeLayout);
        return relativeLayout;
    }
}

【问题讨论】:

    标签: java android android-fragments


    【解决方案1】:

    改变这个

    import android.app.Fragment;
    

    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    

    【讨论】:

    • 非常感谢!这就是问题所在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多