CoordinatorLayout 中的 ViewPager 覆盖 API >= 21 上的其他视图
ViewPager inside CoordinatorLayout covers other views on API >= 21
我正在使用 Google 的新设计支持库中的新 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>
问题是 ViewPager
总是覆盖在 API >= 21
上的 FloatingActionMenu
之上,有解决办法吗?我尝试使用 view.bringToFront()
来解决这个问题,但没有成功。我也移动了 Views
,仍然没有运气。我尝试过的事情:
- 将
FABMenu
移到 AppBarLayout
内
- 将
FABMenu
移到 LinearLayout
内
运气不好。
有没有人经历过类似的事情?
原来这是一个简单的海拔问题,我将海拔设置为 android:elevation=".."
,这比另一个视图的海拔低,因此覆盖了 FloatingActionButtonMenu
。这仅发生在 API >= 21
.
虽然您似乎自己找到了答案,但这里有一个绝对令人惊叹的资源:https://github.com/chrisbanes/cheesesquare
这是在使用官方 google 设计支持库以及该库支持的所有其他好东西(包括极其易于使用的导航侧面板)的协调器布局内实现 viewpager。
我为什么要分享这个?因为代码干净,使用了官方最新的库,并且向后兼容。我发现使用它作为我的应用程序的基础非常容易,而且我已经收到了关于设计的整体实施的良好反馈,该设计严格遵循 material 指南。
例子是android官方团队的人写的,这样也靠谱!
希望您觉得这很有用(虽然不完全是您问题的直接答案 - 但仍然相关)。
我是一个新用户,由于低代表甚至不能 post 发表评论,所以奖励代表真的很有帮助!
谢谢:)
我正在使用 Google 的新设计支持库中的新 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>
问题是 ViewPager
总是覆盖在 API >= 21
上的 FloatingActionMenu
之上,有解决办法吗?我尝试使用 view.bringToFront()
来解决这个问题,但没有成功。我也移动了 Views
,仍然没有运气。我尝试过的事情:
- 将
FABMenu
移到AppBarLayout
内
- 将
FABMenu
移到LinearLayout
内
运气不好。
有没有人经历过类似的事情?
原来这是一个简单的海拔问题,我将海拔设置为 android:elevation=".."
,这比另一个视图的海拔低,因此覆盖了 FloatingActionButtonMenu
。这仅发生在 API >= 21
.
虽然您似乎自己找到了答案,但这里有一个绝对令人惊叹的资源:https://github.com/chrisbanes/cheesesquare
这是在使用官方 google 设计支持库以及该库支持的所有其他好东西(包括极其易于使用的导航侧面板)的协调器布局内实现 viewpager。
我为什么要分享这个?因为代码干净,使用了官方最新的库,并且向后兼容。我发现使用它作为我的应用程序的基础非常容易,而且我已经收到了关于设计的整体实施的良好反馈,该设计严格遵循 material 指南。
例子是android官方团队的人写的,这样也靠谱!
希望您觉得这很有用(虽然不完全是您问题的直接答案 - 但仍然相关)。
我是一个新用户,由于低代表甚至不能 post 发表评论,所以奖励代表真的很有帮助!
谢谢:)