SlidingDrawer打开时如何隐藏句柄?

时间:2011-12-08 09:00:13

标签: android

抽屉关闭时是否可以显示手柄,抽屉打开时是否可以隐藏?

我已经尝试覆盖SlidingDrawer但到目前为止没有成功。

3 个答案:

答案 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