问题描述
我尝试使用CordinatorLayout和CollapsingToolbarLayout,TabLayout和ViewPager创建类似于图像中的布局.我的布局无法正确呈现.
Am try to create a layout similar to the one in the image using a CordinatorLayout and CollapsingToolbarLayout, TabLayout and ViewPager.My Layout doesn't render properly.
这是我的布局
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="48dp"
app:expandedTitleMarginEnd="64dp"
android:fitsSystemWindows="true">
<ImageView
android:id="@+id/image"
android:src="@drawable/thumb_placeholder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_collapseMode="pin" />
<android.support.design.widget.TabLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/movie_tabs"
app:tabGravity="fill"
app:tabMode="fixed"
android:background="@color/colorPrimary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabTextColor="@color/textColorPrimary"
app:tabSelectedTextColor="@color/textColorPrimary"
app:tabIndicatorColor="@color/textColorPrimary"
app:tabIndicatorHeight="4dp"
app:paddingStart="20dp"
app:paddingEnd="20dp">
</android.support.design.widget.TabLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/movieviewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</android.support.design.widget.CoordinatorLayout>
在我的设备上对其进行测试,我得到了
Testing it on my device i get this
如果有内容,则ViewPager片段会覆盖TabLayout,如果没有内容,则将其显示在ImageView的顶部.我在做什么错,我仍然有点像Android初学者.
The ViewPager Fragment overlays the TabLayout if it has content and displays the TabLayout on top of the ImageView when there is no content.What am i doing wrong, i am still somewhat of an Android noob.
推荐答案
-
CollapsingToolbarLayout
需要一个minHeight
.这告诉父AppBarLayout
它可以折叠多少.我假设您希望Toolbar
和TabLayout
停留在屏幕顶部(因为您使用的是exitUntilCollapsed
滚动标记).我将使它们都具有android:layout_height =?attr/actionBarSize"
,并使用该值的两倍作为CollapsingToolbarLayout
的minHeight
.
CollapsingToolbarLayout
needs aminHeight
. This tells the parentAppBarLayout
how much it can collapse. I assume you want theToolbar
and theTabLayout
to stay at the top of the screen (because you are using theexitUntilCollapsed
scroll flag). I would make both of those haveandroid:layout_height="?attr/actionBarSize"
and use double that value as theminHeight
of theCollapsingToolbarLayout
.
ViewPager
需要 app:layout_behavior ="@ string/appbar_scrolling_view_behavior"
.
这篇关于具有TabLayout和ViewPager的CollapsingToolBarLayout的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!