2012-07-11 94 views
4

我正在編輯一個開源項目,並發現layout_marginTop的-1dp值導致Eclipse中的圖形預覽失敗並顯示錯誤。可能包含額外錯誤的完整錯誤消息是:佈局邊距中的負像素

java.lang.NullPointerException 
"-1dp" in attribute "layout_marginTop" is not a valid format. 
Exception details are logged in Window > Show View > Error LogThe graphics preview in the layout editor may not be accurate: 
Paint.setShadowLayer is not supported. (Ignore for this session) 

你知道問題出在哪裏嗎?

+2

因爲負值是不允許的?從什麼時候可以在對象周圍繪製負邊距? – Doomsknight 2012-07-11 19:44:56

+0

即使他們在允許的情況下,需要負值的佈局基本上只是做錯了... – WarrenFaith 2012-07-11 19:45:36

+0

我會開始拿出你的負面價值。 – Addison 2012-07-11 19:46:01

回答

2

原因是因爲在之前版本的Android SDK中,允許使用負邊距(最高2.2?)。之前的負邊限引發了「未指定的行爲」,即他們實際上將負面影響佈局。我以前使用過這個功能,有時它實際上非常有用。我的猜測是(1)佈局對着屏幕的邊緣,這就是導致錯誤的原因或(2)現在更長的負邊界被允許,並且它們會拋出錯誤。但我無法證實。

我只是把它改爲零。

+1

我需要測試何時回家,但我確信我在ICS上使用了負邊距。 – kcoppock 2012-07-11 20:01:41

+2

我無法測試以確認此答案。批准只是爲了獎勵更好的答案。 – Brian 2012-07-16 02:24:27

+0

是的,你可以,當然在ICS,我也認爲JB。實際上,負邊距工作得很好 - 如果你沒有足夠的空間來處理它,我想它會崩潰,但是當你想在圖像底部重疊某些東西時,它對於RelativeLayout是理想的。我正在使用它在Google+應用中重新創建列表用戶界面,以查看我正在處理的類似社交媒體平臺應用,用戶的個人資料圖片與發佈圖片的底部重疊。 – BasicPleasureModel 2012-11-22 13:41:17

2

很簡單地說:

你不能有負面的利潤率在給定的情況

由於這個原因,你的圖形預覽不知道如何渲染它。