抽屉关闭时是否可以显示手柄,抽屉打开时是否可以隐藏?
我已经尝试覆盖SlidingDrawer
但到目前为止没有成功。
答案 0 :(得分:2)
隐藏句柄按钮后,为我工作
<Button
android:id="@+id/handle"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#00000000" />
答案 1 :(得分:2)
你可以在dp中使用slidedrawer的topOffset属性和负值。 (手柄的大小)如下:
android:topOffset="-50dp"
这样,当您打开滑动抽屉时,手柄将通过顶部屏幕,使其从视图中消失。现在为了更清洁的外观,您只需在手柄和滑动抽屉的内容布局之间创建一个透明空间。你可以通过使用一个带有透明背景的linearlayout作为你的slidedrawer的“android:content”布局来实现这一点,并将你的'真实'内容布局放入其中并为其分配topMargin。看起来像这样:
<LinearLayout
android:id="@+id/transparent_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent" >
<LinearLayout
android:id="@+id/real_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="20dp" >
</LinearLayout>
</LinearLayout>
以下是带有“隐藏”/“打捞”句柄的滑动抽屉的整个xml布局如下所示:
<SlidingDrawer
android:id="@+id/slidingdrawer_no_handle_when_opened"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:content="@+id/hiding_handle"
android:handle="@+id/transparent_layout"
android:orientation="vertical"
android:topOffset="-50dp" >
<LinearLayout
android:id="@+id/hiding_handle"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/buttonTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hiding Handle" />
</LinearLayout>
<LinearLayout
android:id="@+id/transparent_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent" >
<LinearLayout
android:id="@+id/real_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="20dp" >
</LinearLayout>
</LinearLayout>
</SlidingDrawer>
*注意 - 您需要根据实际布局调整topOffset和topMargin的值。并且你需要提供另一种方式让用户关闭滑动抽屉,因为你的手柄在打开时是隐藏的吗? ;)
答案 2 :(得分:0)
要隐藏句柄,请将alpha设置为0并显示它将alpha设置为255。
handle.setAlpha(0); // hide
handle.setAlpha(255); // show