2012-10-16 78 views
1

現在在我的應用程序中,我在屏幕右側有一個滑動抽屜,用戶可以向左拉動以查看更多詳細信息。問題在於滑動抽屜的「手柄」。在所有設備上,它看起來很棒,它應該是它的地方。但是,在Nexus 7上,右側有額外的空間。滑動抽屜的Nexus 7佈局問題

The brown space shouldn't be there int he middle

這是我的佈局代碼。請幫助確定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> 
+1

您是否還可以發佈用於加載此佈局的代碼?此外,我並不完全清楚截圖的內容。你提到的手柄中央是深褐色的豎條嗎? – dokkaebi

+0

dokkaebi,該圖片是滑動抽屜的屏幕截圖。深褐色部分是不需要的空間。實際上,我找到了解決問題的方法。我會發佈一個答案。 –

回答

1

它看起來像我沒有發佈足夠的解決這個問題。繪製句柄的代碼是「Viewgroup」中的「dispatchDraw」的重寫方法。爲了解決這個問題,在那個方法中,我檢測手柄的位置並使用下面的代碼修復它。

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

它仍然沒有什麼意義,爲什麼這隻會發生在Nexus 7,但最終,這解決了它。

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" >