我有一个使用导航抽屉的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();
}
}