0

私はAndroid開発を初めて使いました。私はTabLayout(タブの数が固定されている)を保持するViewPagerを持っています。 ViewPagerは、SectionPagerAdapter(タブに対応するフラグメントを有する)を有する。Android:タブの内容を更新しています

ここでは、ユーザーがタブを選択して表示されるとき(またはユーザーがコンテンツを更新したいとき)に、タブのコンテンツを更新したいと考えています。

しかし、これが正しい方法であるかどうかはわかりません。

は、これまでのところ、今まで私は2つの解決策が見つかりました:

1)TabLayoutにリスナーを追加します。

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() 
{ 
    @Override 
    public void onTabSelected(TabLayout.Tab tab) 
    { 
     mViewPager.setCurrentItem(tab.getPosition()); 
     // Update tab containts here 
    } 

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

    } 

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

    } 
}); 

2)タブ内のページフラグメント(のためのコールバックを取得するためにViewPager.OnPageChangeListenerを使用します)が表示されます。

viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() 
{ 
    @Override 
    public void onPageSelected(int position) 
    { 
     // Update tab containts here 
    } 
}); 

Can sオメモの専門家がこのアドバイスをお願いします。

答えて

0

viewpagerアダプタの動作方法(タブ付き)は、フラグメントをビューページに追加すると基本的にフラグメントにコンテンツを追加して、タブが選択されたときに表示されるフラグメントをアダプタに管理させる必要があります。

したがって、単にtabLayoutのOnTabSelectedListenerインターフェイスを使用するだけで、必要なのは `setCurrentItem(tab.getPosition());です。あなたのviewPagerリファレンス(あなたのレイアウトから)。あなたのviewPagerAdapterにフラグメントを追加するには、このような方法で持つことができます

:あなたの破片で今

private void setupViewPager(ViewPager viewPager){ 
    //then create an instance of your ViewPagerAdapter class here 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 

    //then add fragments for each TAB here 
    //by calling a method inside your Adapter like this 
    adapter.addFrag(new FragmentOne(), "TITLE HERE"); 
    adapter.addFrag(new FragmentTwo(), "TITLE TWO"); 

    //Now set your adapter here 
    viewPager.setAdapter(adapter); 
} 

を、あなたはそれに応じて異なるコンテンツを表示することができます。

こちらがお役に立てば幸いです。

+0

したがって、どのタブが選択されているかを知るには、 'onTabSelected'を使用してください。ご回答ありがとうございます。正直なところ、tablayoutビューページのフラグメントとアダプタの関係については、まだ明確ではありません。ダイアグラムや例を使ってすべてを記述するドキュメントへのリンクを共有することができれば、すばらしいことになります。 – Atul

関連する問題