Скрыть вкладку фрагмента Вкладки хоста в дочерних фрагментах - PullRequest
0 голосов
/ 05 июня 2019

У меня есть проект Android, где я использую навигационный ящик. В этом у меня есть фрагмент, который называется «повестка дня». Этот фрагмент является фрагментом tabhost (см. Схему ниже и класс ниже). В этом фрагменте вкладки у меня есть три вкладки («Пятница», «Суббота» и «Воскресенье»).

У меня есть один фрагмент со списком сеансов, который я использую для заполнения вкладок пятница, суббота, воскресенье различными данными - в зависимости от того, какая вкладка выбрана.

При щелчке элемента списка я хочу перейти на страницу сведений (сведения о сеансе) для выбранного элемента.

МОЙ ВЫПУСК:

Я могу передать правильные аргументы для заполнения деталей сеанса. Однако при переходе на страницу сведений о сеансе я все еще вижу вкладки в верхней части экрана. Таким образом, когда я нажимаю на одну из вкладок - т.е. Суббота (в то время как в деталях сеанса) просмотр списка для субботы заполняет текущую страницу подробностей сеанса, на которой я нахожусь.

Чего я ожидаю:

В идеале, при переходе к деталям сеанса я хочу полностью перейти из хоста вкладок (я не хочу видеть вкладки в верхней части страницы сведений о сеансе). Вместо того, чтобы показывать вкладки, я хочу иметь возможность добавлять кнопку «Назад» в сведения о сеансе, поэтому при нажатии кнопки «Назад» я возвращаюсь на страницу повестки дня, на которой отображаются вкладки дня.

ПЛАН МОЙ ПОВЕСТКИ ДНЯ

<FrameLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/agendahost"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<TabHost
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/agenda_tabHost"
    android:layout_gravity="center_horizontal">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
        </TabWidget>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:id="@+id/friday"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="horizontal">

            </LinearLayout>

            <LinearLayout
                android:id="@+id/saturday"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="horizontal">

            </LinearLayout>

            <LinearLayout
                android:id="@+id/sunday"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="horizontal">

            </LinearLayout>

        </FrameLayout>
    </LinearLayout>
</TabHost>
</FrameLayout>

ФРАГМЕНТ ПОВЕСТКИ ДНЯ - НА ВИДЕ СОЗДАНИЯ

    final Bundle args = new Bundle();

    {

        agendaTabHost = new FragmentTabHost(getActivity());
        agendaTabHost.setup(getActivity(), 
getChildFragmentManager(), R.id.fragment_container);

        //CODE ADDING TABS FOR EACH DAY




        return agendaTabHost;
    }

ФРАГМЕНТ ПОВЕСТКИ ДНЯ - фрагмент, который я использую для заполнения каждой вкладки в зависимости на вкладке выбрано. Ниже мой список просмотра нажмите код

    listView.setOnItemClickListener(new 
    AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, 
    int position, long id) {

            SessionDetailsFragment sessiondetFrag = new 
    SessionDetailsFragment();


            Bundle args = new Bundle();



            // CODE TO PASS SESSION ARGUMENTS DEPENDING ON ITEM CLICK ON LISTVIEW  

getFragmentManager(). 
beginTransaction().replace(R.id.fragment_container, 
sessiondetFrag).addToBackStack(null).commit();



        }
    }
...