避免使用ViewPager进入工具栏

时间:2016-02-24 00:06:21

标签: android android-viewpager navigation-drawer

基于 this回答我试图为我的用例提供解决方案。我没有使用折叠工具栏,而是使用常规工具栏但使用tableviewcell。但是,对于func doSomethign() { let cell = CustomTableViewCell() cell.user = username } 我需要使用TabLayout,我不知道在哪里放置它以避免TabLayout出现问题。 ViewPager在我的Host Fragment中,当它的布局取代了FrameLayout时,由于某种原因,内容低于工具栏和TabLayout ......

我尝试将它放在该行下面

ViewPager
<{1>}中的

但它搞砸了我的用户界面。

真正的问题是,如果我的片段需要FrameLayout而且我的TabLayout需要ViewPager,我该如何实现解决方案?

您可以看到我稍微移动了视图,以便工具栏隐藏。通过这种方式,ViewPager可以看到甚至在工具栏下方占用空间(当它可见时)

Screenshot

当前尝试 - appbar_content (工具栏只是一个单独布局的工具栏):

FrameLayout

content_main (删除NestedScrollView,因为它搞砸了所有内容,将整个片段视图放在屏幕中间的小框架(可能是50x50大小)中)

<include layout="@layout/content_main" />

我的 DrawerLayout

the app_bar_main.xml

2 个答案:

答案 0 :(得分:3)

经过大量的努力,我发现在我的FrameLayout中放置一个NestedScrollView并将一个layout_behaviour分配给我的FrameLayout使得Scroll View继承了它,现在它就像一个魅力!

这是我的DrawerLayout

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

<include
    layout="@layout/appbar_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView
        android:fitsSystemWindows="true"
        android:id="@+id/nvView"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/tealfifty"
        app:itemBackground="@drawable/drawer_item"
        app:itemTextColor="@color/drawer_item"
        app:itemIconTint="@color/drawer_item"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/navigation_view_items" />
</android.support.v4.widget.DrawerLayout>

<强> appbar_content.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <include layout="@layout/toolbar" />

    <android.support.design.widget.TabLayout
        android:visibility="visible"
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/teal"
        app:tabGravity="fill"
        app:tabIndicatorColor="@color/purple800"
        app:tabIndicatorHeight="4dp"
        app:itemIconTint="@color/tabicons"
        app:tabMode="fixed"
        app:tabSelectedTextColor="@color/tealfifty"
        app:tabTextAppearance="@style/TabCapsFalse"
        app:tabTextColor="@color/iron" />
</android.support.design.widget.AppBarLayout>



<FrameLayout android:id="@+id/content_main_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:showIn="@layout/appbar_content"
    xmlns:tools="http://schemas.android.com/tools">
    <android.support.v4.widget.NestedScrollView
        android:id="@+id/scroll_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</FrameLayout>


<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:visibility="invisible"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:clickable="true"
    android:src="@drawable/addico"
    app:layout_anchor="@id/content_main_frame"
    app:layout_anchorGravity="bottom|end" />

答案 1 :(得分:1)

将标签布局和视图寻呼机放在线性布局中,方向垂直。所以你的线性布局将是Coordinator布局的孩子。这将确保您的视图寻呼机在tablayout下面开始。