0

我正在使用从右到左的SlidingDrawer 运行良好,但我对 android:handle 的不可见部分有问题,它是一个线性布局。我不得不使用具有 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>
4

1 回答 1

1

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

sldingdrawer 源代码中的这一行决定了把手的位置。

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

扩展滑动抽屉并尝试调整值,直到获得所需的位置。

于 2011-12-08T19:53:43.523 回答