ToolBar下的ViewPager无法正常工作

时间:2015-10-15 19:19:13

标签: android

我正在尝试在我的ViewPager下添加ToolBar,问题是ViewPager位于布局的顶部,尽管我放了layout_below="@+id/toolBar来自ToolBar

的ID

这是我的activiy_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

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

    <FrameLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/containerView">

        <android.support.v7.widget.Toolbar
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minHeight="?android:attr/actionBarSize"
            android:background="?attr/colorPrimary"
            android:id="@+id/toolBar"
            android:fitsSystemWindows="true"
            android:theme="@style/ThemeOverlay.AppCompat.Dark"
            />
        <android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/toolBar"
            android:background="?attr/colorPrimary"
            android:elevation="6dp"
            android:minHeight="?attr/actionBarSize"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_below="@id/tab_layout"/>

    </FrameLayout>
    <android.support.v7.widget.RecyclerView
        android:layout_width="290dp"
        android:layout_height="match_parent"
        android:id="@+id/recyclerView"
        android:scrollbars="vertical"
        android:background="#FFFFFF"
        android:layout_gravity="left"
        />
</android.support.v4.widget.DrawerLayout>

注意:在此布局上,我还添加了NavigationDrawer

这是输出:

enter image description here

我做错了什么?

我已创建此style

<style name="tabs" parent ="ThemeOverlay.AppCompat.Dark.ActionBar">            
        <item name="tabSelectedTextColor">@color/blue</item>
    </style>

现在我没有看到“影子”,因为我也删除了这一行android:background="?attr/colorPrimary",但现在我看到了white标签,我只看到了选择线。

2 个答案:

答案 0 :(得分:1)

What I'm doing wrong?

两个项目的父项都是<FrameLayout,后者将其子项一个堆叠在另一个上面。您必须使用<RelativeLayout

答案 1 :(得分:1)

您还可以尝试的第二件事是直接在Main父DrawerLayout中包含一个包含View Pagers的线性布局。我在我的应用程序中以这种方式实现了它。

<android.support.v4.widget.DrawerLayout 
android:id="@+id/tab_layout_main_id"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <include
        android:id="@+id/app_bar" //app bar here.
        layout="@layout/app_bar" />

    <com.faisal.soccerworld.tab_layout.SlidingTabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <android.support.v4.view.ViewPager // here's view pagers.!
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>

<fragment // this is navigation drawer.!
    android:id="@+id/fragmentNavDrawerID"
    android:name="com.faisal.soccerworld.tab_layout.NavigationDrawerFragment"
    android:layout_width="@dimen/DrawerWidth"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:layout="@layout/fragment_navigation_drawer"
    tools:layout="@layout/fragment_navigation_drawer" />

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