ViewPager在API >= 21的CoordinatorLayout中会覆盖其他视图

9
我是使用谷歌的新设计支持库中的CoordinatorLayout。 我有以下布局:
<android.support.design.widget.CoordinatorLayout>

<android.support.design.widget.AppBarLayout>

    <android.support.design.widget.CollapsingToolbarLayout
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <ImageView
            app:layout_collapseMode="parallax"/>

        <android.support.v7.widget.Toolbar />

    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

<LinearLayout
    app:layout_behavior="@string/appbar_scrolling_view_behavior" >

    <android.support.design.widget.TabLayout />

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager" />
</LinearLayout>

<com.getbase.floatingactionbutton.FloatingActionsMenu
    app:layout_anchor="@id/viewPager"
    app:layout_anchorGravity="bottom|right|end"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    >

    <com.getbase.floatingactionbutton.FloatingActionButton />

</com.getbase.floatingactionbutton.FloatingActionsMenu>


</android.support.design.widget.CoordinatorLayout>

问题在于在API >= 21上,ViewPager总是覆盖在FloatingActionMenu之上,有没有解决方法?我尝试使用view.bringToFront()来解决这个问题,但没有成功。我还移动了Views,但仍然没有成功。我尝试的方法如下:

  • FABMenu移动到AppBarLayout内部
  • FABMenu移动到LinearLayout内部

但都没有成功。

有人遇到过类似的问题吗?

2个回答

6

原来这只是一个简单的高度问题,我设置了android:elevation=".."的高度,但这个高度比另一个视图低,因此覆盖了FloatingActionButtonMenu。这只在API >= 21上发生。


2
尽管您似乎已经自己找到了答案,但这里有一个绝妙的资源:https://github.com/chrisbanes/cheesesquare。它是一个使用官方 Google 设计支持库实现的 coordinator layout 中的 viewpager,并支持该库支持的所有其他好处(包括一个极易使用的导航侧面板)。
为什么要分享这个?因为代码干净、使用最新的官方库并且向后兼容。我发现将其用作应用程序基础非常容易,而且我已经得到了关注材料设计指南的整体实现的良好反馈。
示例由来自官方 Android 团队的人编写,因此也很可靠!
希望您会发现这个资源有用(虽然不完全是对您问题的直接回答,但相关性还是很高的)。
我是一名新用户,由于声誉低而无法发布评论,所以奖励声誉将非常有帮助!
谢谢 :)

这与我的问题完全不相关。自从那个库推出以来,我一直在使用它。这似乎是由于设置高程而引起的。 - AndyRoid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接