现在,在我的应用程序中,我在屏幕右侧有一个滑动抽屉,用户可以向左拉动以查看更多详细信息。问题在于滑动抽屉的“把手”。在所有设备上它看起来很棒并且应该在哪里。但是,在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>
答案 0 :(得分:1)
看起来我没有足够的帖子来解决这个问题。绘制句柄的代码是“Viewgroup”中“dispatchDraw”的重写方法。为了解决这个问题,在那个方法中,我检测了句柄位置并使用下面的代码修复它。
if (mHandle.getLeft() == 0) {
handle.offsetLeftAndRight(10);
}
为什么这只会发生在Nexus 7上仍然没有多大意义,但最终解决了这个问题。
答案 1 :(得分: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" >