基于
this回答我试图为我的用例提供解决方案。我没有使用折叠工具栏,而是使用常规工具栏但使用tableviewcell
。但是,对于func doSomethign() {
let cell = CustomTableViewCell()
cell.user = username
}
我需要使用TabLayout
,我不知道在哪里放置它以避免TabLayout
出现问题。 ViewPager在我的Host Fragment中,当它的布局取代了FrameLayout时,由于某种原因,内容低于工具栏和TabLayout ......
我尝试将它放在该行下面
ViewPager
<{1>}中的但它搞砸了我的用户界面。
真正的问题是,如果我的片段需要FrameLayout而且我的TabLayout需要ViewPager,我该如何实现解决方案?
您可以看到我稍微移动了视图,以便工具栏隐藏。通过这种方式,ViewPager可以看到甚至在工具栏下方占用空间(当它可见时)
当前尝试 - appbar_content (工具栏只是一个单独布局的工具栏):
FrameLayout
content_main (删除NestedScrollView,因为它搞砸了所有内容,将整个片段视图放在屏幕中间的小框架(可能是50x50大小)中)
<include layout="@layout/content_main" />
我的 DrawerLayout :
the app_bar_main.xml
答案 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下面开始。