2017-05-09 6 views
0

シナリオでレイアウトにCustomFragmentを追加します。 私はそのフラグメントをArrayList(fragSteps)に格納して、それらをより簡単に処理します。 列挙したり、追加したり、削除したりする必要があるので、LinearLayout内にそれらをすべて保持したいので、オーバーヘッドを処理する必要はありません。はインデックス

私が探しているのは、Layout.addView(View, Index)のフラグメント相当物です。または、フラグメントがレイアウトに添付された後、フラグメントの位置を簡単に移動する方法です。

コード

を追加し、私はこの2行を使用してフラグメントを削除するには、次のものが必要な場合は

public void addFragment(int index) 
{ 
    getFragmentManager().beginTransaction().add 
      (R.id.layout, fragSteps.get(index + 1)).commit(); 
} 

public void removeFragment(int index) 
{ 
    getFragmentManager().beginTransaction().remove(fragSteps.get(index)).commit(); 
} 

は、コメント欄でそれを述べます。 sollutionとして

答えて

0

は、あなたがコントロールに

public View addFrag(FragmentSecondParent fragment) 
 
    { 
 
     View view=new View(getActivity()); 
 
     FragmentManager fragmentManager=getActivity().getSupportFragmentManager(); 
 
     FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction(); 
 
     fragmentTransaction.add(view.getId(),fragment).commit(); 
 
     return view; 
 
    } 
 
    public void removeFrag(View view) 
 
    { 
 
     view.setVisibility(View.GONE); 
 
    } 
 
    
 
//to use the above Methods 
 
{ 
 
List<View> views=new ArrayList(); 
 
     LinearLayout layout=findViewById(...); 
 
     //add these view to a List to get them just by the index 
 
     View view=addFrag(new FragmentSecondParent()); 
 
     views.add(view); 
 
     layout.add(view); 
 
     }

+0

を取るためにビューを使用することができますので、ビュー内のすべての断片を使用しようとすることは、ビューとしてのTableRowを使用して統合しています。 しかし、私はそれを一種のハックと考えています。何もうまくいきません。ありがとうございました! – Spirit

関連する問題