SlidingDrawer具有处理不可见和垂直中心的布局

时间:2011-12-08 18:06:51

标签: android layout slidingdrawer

我正在使用从右到左 SlidingDrawer ,它运行良好,但我对android:handle的不可见部分有问题,这是一个LinearLayout。 我不得不使用具有fill_parent属性的LinearLayout来允许将我的按钮放在视图的顶部。如果我把手柄放在ImageView上, 它在中间垂直,我不想要这个。

这是我的代码:

<SlidingDrawer
            android:id="@+id/SlidingDrawer"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_alignParentTop="true"
            android:content="@+id/contentLayout"
            android:handle="@+id/slideHandleButton"
            android:orientation="horizontal"
            android:padding="0dp" >

            <LinearLayout

                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/slideHandleButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/profile_top_panel_background" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/contentLayout"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/slideHandleButton"
                android:background="@drawable/profile_slider_attributes_background"
                android:orientation="vertical"
                android:padding="10dip" >

                <ScrollView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:fillViewport="true" >

                    <LinearLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:orientation="vertical" >

            //DISPLAY CONTENT

                    </LinearLayout>
                </ScrollView>
            </LinearLayout>
        </SlidingDrawer>

1 个答案:

答案 0 :(得分:1)

我发现将句柄移动到我想要的位置的唯一方法是扩展slidedrawer类并修改onLayout方法。

sldingdrawer源代码中的这一行确定了句柄的位置。

handle.layout(childLeft, childTop, childLeft + childWidth, childTop + childHeight);

延伸滑动抽屉并尝试调整值,直到找到所需的位置。