1

現在、私のアプリでは、画面の右側にスライド式の引き出しがあり、ユーザーは左側に引っ張って詳細を表示できます。問題は引出しの「取っ手」にあります。すべてのデバイスで見栄えがよく、あるべき場所にあります。ただし、Nexus 7 では、右側に余分なスペースがあります。

真ん中に茶色のスペースがあってはならない

これが私のレイアウトコードです。Nexus 7 が他と異なる理由を特定するのにお役立てください。ありがとう。

 <com.app.android.apps.app.views.DragContentSlidingDrawer
                   android:id="@+id/drawer"
                   android:layout_width="match_parent"
                   android:layout_height="fill_parent"
                   ancestry:orientation="horizontal"
                   android:layout_alignParentRight="true"
                   ancestry:handle="@+id/panel_slider2"
                   ancestry:content="@+id/panel_frame"
                   ancestry:allowSingleTap="false" >

    <ImageView android:layout_width="wrap_content"
               android:layout_height="fill_parent"
               android:id="@+id/panel_slider2"
               android:src="@drawable/panel_handle"
               android:scaleType="fitXY"
               android:layout_alignParentRight="true"

            />


    <RelativeLayout android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:gravity="right"
                    android:id="@+id/panel_frame">

        <LinearLayout android:layout_width="fill_parent"
                      android:layout_height="fill_parent"
                      android:gravity="right"
                      android:layout_alignParentBottom="true"
                      android:layout_alignParentRight="true"
                      android:id="@+id/panel_layout">

            <FrameLayout android:layout_height="fill_parent"
                         android:layout_width="fill_parent"
                         android:id="@+id/panel_layout_holder"
                         android:background="@color/background"/>

        </LinearLayout>

    </RelativeLayout>

</com.app.android.apps.app.views.DragContentSlidingDrawer>
4

2 に答える 2

1

この問題を解決するのに十分な投稿をしていないようです。ハンドルを描画しているコードは、「Viewgroup」からの「dispatchDraw」のオーバーライドされたメソッドです。この問題を解決するには、その方法でハンドルの位置を検出し、以下のコードを使用して修正します。

 if (mHandle.getLeft() == 0) {
        handle.offsetLeftAndRight(10);
    }

これが Nexus 7 でのみ発生する理由はまだよくわかりませんが、最終的にはこれで修正されます。

于 2012-10-16T18:03:36.593 に答える
1

XMLコードを間違えたようです。次の修正を試してください。

<com.app.android.apps.app.views.DragContentSlidingDrawer
                   android:id="@+id/drawer"
                   android:layout_width="**fill_parent**"
                   android:layout_height="fill_parent"
                   ancestry:orientation="horizontal"
                   android:layout_alignParentRight="true"
                   ancestry:handle="@+id/panel_slider2"
                   ancestry:content="@+id/panel_frame"
                   ancestry:allowSingleTap="false" >
于 2012-11-26T07:33:22.963 に答える