-1

나는 2 개의 탭으로 활동했다. 무슨 일을하려고하면 각각의 탭을 눌렀을 때 두 조각 사이를 바꾸는 것입니다. 나 또한 2 조각 : fragmentOne 및 fragmentTwo.When 탭 하나를 눌렀을 때 fragmentOne 표시하고 탭 2 누르면 내가 fragmentTwo 표시하고 싶습니다. 내가 액티비티에서 컨테이너 레이아웃을 만들고 거기에 fragmentOne과 fragmentTwo를 추가해야하는지, 아니면 다른 방법으로 할 수 있을지 모르겠습니다. 여기탭에서 조각을 바꾸는 방법은 무엇입니까?

내 코드입니다

public class InboxActivity extends AppCompatActivity { 
private TabLayout tabLayout; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_inbox); 

    tabLayout = (TabLayout)findViewById(R.id.tabLayout); 

    tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      Fragment fragment; 
      int position = tab.getPosition(); 
      //requests = position - 0 
      //invitations = position - 1 
      switch (position){ 
       case 0: 
        break; 
       case 1: 
        break; 
      } 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     } 
    }); 
} 

경우 내가 보여주고 싶은 0 일 때 fragmentOne

내가 fragmentTwo에게 보여주고 싶은 일 내가 어떻게해야합니까

나는 경우?

+1

사용을위한 tutorial입니다 뷰 페이지로 탭 레이아웃 이 자습서를 따르십시오 : https://android.jlelse.eu/tablayout-and-viewpager-in-your-android-app-738b8840c38a –

답변

1

를 사용하여 사용 :

여기
public void onTabSelected(TabLayout.Tab tab) { 
    Fragment fragment = null; 

    switch (tab.getPosition()) { 
     case 0: 
     fragment = new FirstFragment(); 
     break; 

     case 1: 
     fragment = new SecondFragment(); 
     break;  
    } 

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.replace(R.id.simpleFrameLayout, fragment); 
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
    ft.commit(); 
} 

자세한 내용

+0

튜토리얼이 정말 도움이되었습니다. –

0

대신 ViewPager을 사용하십시오.

뷰 페이저에서 어댑터를 설정하고 다음과 같이 그것을 할 수있는 TabLayout

tabLayout.setupWithViewPager(viewPager); 
관련 문제