2017-07-13 9 views
1

私はタブを使って作業しています。ビューページャーを使用しています。私はコンテンツを変更したり、フラグメントを置きたいのですが、私は同じタブにとどまりたいと思っています。タブ内のボタンをクリックすると、タブ内のフラグメントを変更したいと考えています。タブを変更することはできません。する必要があります。私は、一般的なタブをあるタブ0でmはとき 同じタブのビューページで動的にフラグメントを変更する

ViewPagerAdapter adapter = ne ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new General(), "General"); 
    adapter.addFragment(new Educat(), "Education"); 
    adapter.addFragment(new Profetiona(), "Experience"); 
    adapter.addFragment(new Skills(), "Skills"); 

ので、私はタブ0でinfoFragementに一般fragementを交換したいクリック1つのボタンがあります。私はタブをスワイプしたくない私は内容を変更したい、または新しい断片をロードするだけです

+0

チェックこの質問の答えhttps://stackoverflow.com/questions/18088076/update-fragment-from-viewpager responceため – karthik

+0

thnksしかし、thay rの変更は、所有に基づいてタブを完了 – androidking

+0

私はちょうど変更fragemntしたい – androidking

答えて

0

ネストされたフラグメントを使用することができます。 たとえば、一般的なフラグメントでは、最初にChildFragment1をロードしてから、ボタンをクリックした後にChildFragment2で置き換えることができます。

fragment_general.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

    <View 
     android:id="@+id/view_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

</FrameLayout> 

GneralFragment.java

//Call this at the beginning 
private void loadChildFragment1(){ 
    getChildFragmentManager() 
        .beginTransaction() 
        .replace(R.id.view_container, 
          new ChildFragment1() 
        .commit(); 
} 

//Call this after the click 
private void loadChildFragment2(){ 
    getChildFragmentManager() 
        .beginTransaction() 
        .replace(R.id.view_container, 
          new ChildFragment2() 
        .commit(); 
} 
関連する問題