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