Android 查看片段中的寻呼机

Android 查看片段中的寻呼机,android,android-viewpager,android-bottomnav,Android,Android Viewpager,Android Bottomnav,我有底部导航栏实现与查看寻呼机。现在在第一个片段中,我希望在顶部有标签,所以我只需要在片段内部有一个查看页面。该视图寻呼机将有自己的片段集。可能吗?有人能帮我吗?是的,这是完全可能的,因为您的内部viewpager和TableLayout将独立于其父片段。实现这一点的过程与创建第一组选项卡的过程完全相同,但必须使用getChildFragmentManager() 对于表格布局,只需创建视图并像往常一样使用setupWithViewPager(viewPager)功能。是的,您可以将viewPa

我有底部导航栏实现与查看寻呼机。现在在第一个片段中,我希望在顶部有标签,所以我只需要在片段内部有一个查看页面。该视图寻呼机将有自己的片段集。可能吗?有人能帮我吗?

是的,这是完全可能的,因为您的内部viewpager和TableLayout将独立于其父片段。实现这一点的过程与创建第一组选项卡的过程完全相同,但必须使用getChildFragmentManager()


对于表格布局,只需创建视图并像往常一样使用setupWithViewPager(viewPager)功能。

是的,您可以将viewPager添加到片段的XML中,如下所示:

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layoutDirection="ltr"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:contentInsetEnd="16dp"
        app:popupTheme="@style/AppTheme.PopupOverlay">

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="start|center_vertical"
            android:gravity="center|start"
            android:text="@string/app_name"
            android:textAppearance="@style/TextAppearance.AppCompat.Title"/>
    </android.support.v7.widget.Toolbar>

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        app:tabIndicatorHeight="3dp"
        app:tabMode="fixed"/>
</android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
        ViewPager pager = (ViewPager) findViewById(R.id.pager);
    mAdapter = new MyPagerAdapter(getSupportFragmentManager());

    mAdapter.addFragment(first_fragment, firts_fragment_title);
    mAdapter.addFragment(second_fragment, second_fragment_title);
    pager.setAdapter(mAdapter);

    TabLayout tabs = (TabLayout) findViewById(R.id.tabs);
    tabs.setupWithViewPager(pager);
    TextView first_fragment_tab = (TextView) getLayoutInflater().inflate(R.layout.tab_indicator, null);
    TextView second_fragment_tab = (TextView) getLayoutInflater().inflate(R.layout.tab_indicator, null);

    tabs.getTabAt(0).setCustomView(first_fragment_tab);
    tabs.getTabAt(1).setCustomView(second_fragment_tab);
    pager.setCurrentItem(mAdapter.getCount());

可以嵌套
片段
。但片段往往会带来新的麻烦,所以在它上面集成另一个片段层,我们可能会陷入更深的麻烦。 如果您正在执行基本操作,这可能没问题,但如果存在数据交换和其他片段间依赖的情况,我建议您非常小心。

是的,这是可能的

步骤1:创建选项卡式活动。(它将使用ViewPager自动创建活动)

步骤2:将该活动转换为片段,以便能够将其添加到您的导航中。使用以下答案:

注:
我在一个项目中这样做了,在导航栏的其他选项卡上有其他的
ViewPager
s使每一个都变得更复杂。使用
viewPager.setOffscreenPageLimit(…)将解决您可能遇到的一些问题。

谢谢您的回答。我真正关心的是,我的底部导航可以通过滑动以及从导航栏中选择图标来工作。我将实现的滑动选项卡也适用于刷卡,因此如何解决该冲突?谢谢您的回答,但我的问题是,我的主要活动是使用Actibar并在该custome视图上设置custome view。现在当我按下那个主要活动的第一个片段的按钮,我必须用新片段替换该片段,并且该新片段必须具有滑动选项卡,选项卡名称显示在顶部。因此,问题是,由于主要活动使用操作栏,我将如何在片段中设置工具栏?我做了一切,但我希望应用程序标题显示在工具栏上。当我把它作为一项活动来实施时,它是有效的。但在我将其实现为片段之后,它就不是了working@AakashShah你想要这样的短信:@AakashShah还是这样的:
        ViewPager pager = (ViewPager) findViewById(R.id.pager);
    mAdapter = new MyPagerAdapter(getSupportFragmentManager());

    mAdapter.addFragment(first_fragment, firts_fragment_title);
    mAdapter.addFragment(second_fragment, second_fragment_title);
    pager.setAdapter(mAdapter);

    TabLayout tabs = (TabLayout) findViewById(R.id.tabs);
    tabs.setupWithViewPager(pager);
    TextView first_fragment_tab = (TextView) getLayoutInflater().inflate(R.layout.tab_indicator, null);
    TextView second_fragment_tab = (TextView) getLayoutInflater().inflate(R.layout.tab_indicator, null);

    tabs.getTabAt(0).setCustomView(first_fragment_tab);
    tabs.getTabAt(1).setCustomView(second_fragment_tab);
    pager.setCurrentItem(mAdapter.getCount());