将viewpager与片段内的滑动标签放在一起作为嵌套格式

时间:2015-01-03 07:12:15

标签: android android-fragments android-viewpager

我想做什么:

  1. 我正在使用抽屉,我有10个片段
  2. 在我试图添加视图寻呼机的片段中 滑动标签(根据杰克沃顿有视图寻呼机指示器)

  3. 发生了什么:

    1. 当我尝试这样做时,我得到error as described here in one of my other stackoverflow question
    2. 我无法使用图中描述的架构 以下

    3. 问题::

      1. 放置带有滑动标签的视图寻呼机 片段?
      2. 若有,网上有样品吗? (杰克沃顿样本完成了 将小部件放在活动而不是片段中)
      3. 如果有其他方法可用,那么有任何开源库 此

      4. 注意: 我知道不建议使用嵌套方式,但我需要获得此架构


        架构我想要得到它:

        fig

1 个答案:

答案 0 :(得分:1)

首先,您可以在Google https://developer.android.com/samples/SlidingTabsBasic/project.html中试用此示例。它还包含SlidingTabLayout类,如果你使用不同的东西,请尝试它。

此项目与您的(具有相同布局)类似,但导航抽屉除外。

所以,让我们做以下事情:

您的主要布局可能如下所示:

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

    <LinearLayout
        android:id="@+id/drawer"
        android:layout_width="@dimen/drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="@color/drawer_back"
        android:gravity="left|center_vertical"
        android:orientation="vertical">

        <ListView
            android:id="@+id/left_drawer"
            android:layout_width="@dimen/drawer_width"
            android:layout_height="0dip"
            android:layout_gravity="left"
            android:layout_weight="1"
            android:background="@color/drawer_back"
            android:choiceMode="singleChoice"
            android:clipToPadding="false"
            android:divider="@android:color/darker_gray"
            android:dividerHeight="1dp" />

    </LinearLayout>

</android.support.v4.widget.DrawerLayout>

对于带有滑动标签的片段,请使用以下布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical">

    <yourpackage.slidinglayout.SlidingTabLayout
        android:id="@+id/sliding_tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="4dp"
        android:background="@drawable/toolbar_shadow" />

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="0px"
        android:layout_weight="1"
        android:layout_marginTop="@dimen/small_padding"
        android:background="@android:color/white"/>
</LinearLayout>

之后你应该为你的ViewPager等创建一个片段,但我想,你已经完成了它。

带有滑动标签和ViewPager的片段 - 由您决定。

在单击滑动标签的抽屉项目上,只需使用FragmentTransaction:

mCurrentFragment = new SlidingTabsFragment();
mTransaction.replace(R.id.content_fragment, mCurrentFragment);
mTransaction.commit();