2014-09-24 48 views
0

原諒我水平低的英語:(拖放與「最大寬度限制DP」

我開發一個Android應用程序問題,下面是我支持SDK:

敏SDK版本: 13 目標SDK版本:16

我也曾宣佈的Manifest.xml supports-screens android:largestWidthLimitDp="320"

我實現拖放功能全部正常工作,如果我在一個320密度屏幕設備測試的應用程序。 (例如Nexus S),但是,如果我在最大320密度的屏幕設備(例如Note 3或Nexus 5)中進行測試,則會發生下拉失敗。

在這種情況下,我可以拖動視圖,但是當我將視圖放在目標上時查看,有一個位移。我的意思是,只有當我把第一個視圖放在目標視圖的範圍之外時,我才能夠執行「拖放」。

如果我刪除supports-screens android:largestWidthLimitDp="320"屬性,所有的工作都沒有問題。但是,正如您可能猜到的那樣,這在我的應用程序中是絕對必要的。

您可以檢查項目。 Download here

請查看這些照片,以便更好地理解我的意思:

支持屏安卓largestWidthLimitDp = 「320」 OFF(所有做工精細) (IMAGE LINK)

支持屏的Android版本: largestWidthLimitDp = 「320」 ON(你可以看到這個問題:灰色的觀點是不發黃圖) (IMAGE LINK drive.google.com/file/d/0B5mkXsoIIRVEb04zSmZmZ05SODQ/edit?usp=sharing)

支撐屏機器人:largestWidthLimitDp = 「320」 ON(ACTION_DRAG_ENTERED是有效只在 「虛擬」 盒[藍色視圖的邊界外) (IMAGE LINK drive.google.com/file/d/0B5mkXsoIIRVEa3RGM1hPNjJCaTg/編輯?usp =分享)

恐怕這是Android OS的一個bug。假設這個屬性不能推遲,你知道這個問題的解決方案嗎?非常感謝您的幫助

(EDIT)

很抱歉後的格式。我無法提交超過2個鏈接。

回答

0

從文檔看起來像android:largestWidthLimitDp使應用程序進入兼容模式,如果設置的值小於設備的最小寬度(nexus 5的「最小屏幕寬度」爲360dp,這是較大的)。所以應用程序正在進入這種兼容模式。

同樣來自文檔:「目前兼容模式只模擬320dp寬度的手機屏幕」 ,這意味着您的應用程序認爲佈局寬度爲320dp。由於N5是360,我會認爲計算有一些問題。

從代碼我看不出任何問題,所以這可能是一個問題在別的地方。您是否嘗試過在開發人員設置中使用「繪製視圖邊界」選項?

但是,我會勸阻使用支持屏幕和創建一個響應式設計,體驗會更好。

+0

從開發人員設置中的「繪製視圖邊界」顯示所有的矩形都放置在視圖上,因此不繪製碰撞矩形。 我知道我不必使用支持屏幕,但現在時間非常有限。無論如何,謝謝你的提示:-) – Eric 2014-09-24 14:39:01