我需要实现一个下拉视图,该视图在 ActionBar 的最右侧有一个“句柄”。当手柄被点击时,它应该是全宽的并以动画形式打开,另外手柄本身应该是可拖动的。minSdkVersion 为 8
关于下拉功能本身,我发现SlidingDrawer不符合要求,因为它在 API v17 中已被弃用,并且只能从下到上打开。控件SlidingTray似乎克服了这个问题。我还没有彻底测试它,但它似乎按预期工作。
现在到主要问题。甚至可以以这种方式显示视图吗?我尝试为 ActionBar 设置自定义视图,其中膨胀的 XML 看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<my.package.drawer.SlidingTray
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:content="@+id/content"
android:handle="@+id/handle" >
<ImageView
android:id="@+id/handle"
android:layout_width="88dp"
android:layout_height="44dp"
android:src="@drawable/ic_launcher" />
<Button
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</my.package.drawer.SlidingTray>
</RelativeLayout>
现在,当我将 SlidingTray 视图本身放在活动/片段布局中时(可以拖动手柄并单击它以打开/关闭托盘),SlidingTray 视图本身按预期运行,但是当在 ActionBar 内部膨胀布局时,以及按下/拖动手柄,托盘在停止之前只移动几个像素 -它不会超出 ActionBar 的边界。这是主要问题 - 视图是否可以超越 ActionBar 本身(在下面显示的活动之上),如果是这样 - 如何?