2017-09-28 15 views
2

私は2つのフラグメントを持つViewpagerを持っています。 それぞれの断片を3つの異なる断片に置き換えたいと思います。 どうすればいいですか? また、現在のフラグメントでボタンをクリックした後、新しいフラグメントリストを使用してArrayList全体を変更できますか?ViewPagerのフラグメントトランザクション

これは私がやったことです。

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View v = inflater.inflate(R.layout.fragment_healthy_mode, container, false); 

    swipeLeft = v.findViewById(R.id.leftSlide); 
    swipeRight = v.findViewById(R.id.rightSlide); 

    pageArray = new ArrayList<Fragment>(); 

    pageArray.add(new Female()); 
    pageArray.add(new Male()); 

healthyModeAdapter = new HealthyModeAdapter(getFragmentManager(), pageArray); 

    viewPager = (ViewPager) v.findViewById(R.id.healthyModeViewPager); 
    viewPager.setAdapter(healthyModeAdapter); 


// I want to replace female n male fragment with 

    pageArray.add(new EctoBodyFemale()); 
    pageArray.add(new EndoBodyFemale()); 
    pageArray.add(new MesoBodyFemale()); 

    pageArray.add(new EctoBodyMale()); 
    pageArray.add(new EndoBodyMale()); 
    pageArray.add(new MesoBodyMale()); 

答えて

0

ViewPager私が正しく理解していれば、あなたは静的であり、それぞれ3つのサブコンポーネント、そのような場合には、あなたが2つのオプションがあり、各ページたいView秒またはFragment秒での動作をサポートしています。ネストされた断片を使用して

は、作成をサブフラグメントを含むページごとにFragmentを入力してください。これらの親フラグメントをページャービューに提供するフラグメントとして使用してください。

ネストされたフラグメントは推奨されていません。バグであることが判明しており、パフォーマンスに影響する可能性があります。したがって、Viewアプローチを採用して、フラグメントを定義するxmlを作成し、それを膨張させた後にViewPagerに直接提供することをお勧めします。

+0

あなたより。もう1つの質問、どのように私は現在のフラグメントのボタンをクリックした後に、フラグメントの新しいリストで全体のArrayListを変更できますか? –

+0

'ViewPager'は' RecyclerView'と非常によく似た働きをして、あなたのアダプタで使用されているリストを更新し、アダプタで 'notifyDataSetChanged'を呼び出します –

関連する問題