Измените вкладку на дочерний фрагмент - PullRequest
0 голосов
/ 30 января 2020

У меня есть TabLayout, состоящий из трех элементов. Когда я нажимаю на один из них, фрагмент заменяет TabLayout другим TabLayout из других элементов.

Пример: Tab1, Tab2, Tab3. Я нажимаю на Tab3, и у меня будет новая вкладка с Tab4 и Tab5

Вместо этого, если я нажму на Tab1, появится контекстное меню.

Как я могу их умолять?

Activity_main_ xml

<include layout="@layout/toolbar"
    android:id="@+id/main_toolbar"
    android:layout_alignParentStart="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true" />

<include
    android:id="@+id/main_tab_layout"
    layout="@layout/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/main_toolbar"
    />

<include
    layout="@layout/view_pager"
    android:id="@+id/main_tabs_pager"
    android:layout_below="@id/main_tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
</RelativeLayout>

ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Toolbar mToolbar=(Toolbar) findViewById(R.id.main_toolbar);
    setSupportActionBar(mToolbar);


    final TabLayout mTabLayout =(TabLayout) findViewById(R.id.main_tab_layout);
    mTabLayout.addTab(mTabLayout.newTab().setText("Sort"));
    mTabLayout.addTab(mTabLayout.newTab().setText("Filter"));
    mTabLayout.addTab(mTabLayout.newTab().setText("Map"));
    for(int i=0;i<mTabLayout.getTabCount();i++)
        mTabLayout.getTabAt(i).setIcon(imageResId[i]);
    mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

    mViewPager=(ViewPager) findViewById(R.id.main_tabs_pager);
    PageAdapter pageAdapter=new PageAdapter(getSupportFragmentManager(),mTabLayout.getTabCount());
    mViewPager.setAdapter(pageAdapter);
    mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));
    mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
            mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {
            mViewPager.setCurrentItem(tab.getPosition());
        }
    });

}

ФРАГМЕНТ ОДИН

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View root=inflater.inflate(R.layout.fragment_map,container,true);

    /* TAB of TWO ELEMENT*/
    return root;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...