0

右から左にSlidingDrawerを使用していますが、正常に機能していますが、LinearLayoutである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

ハンドルを目的の場所に正確に移動する唯一の方法は、slidedrawer クラスを拡張して onLayout メソッドを変更することでした。

sldingdrawer ソース コードのこの行は、ハンドルの位置を決定します。

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

スライドドロワーを伸ばして、希望の位置になるまで値を調整してみてください。

于 2011-12-08T19:53:43.523 に答える