2013-08-29 116 views
6

我知道如何以編程方式設置View的邊距,使用LinearLayout.LayoutParams和方法setMargins(int, int, int, int),但是如何在視圖上放置負邊距?以編程方式設置負邊距

回答

7

訪問你的父佈局的佈局PARAMS和修改它們,只要你喜歡:

ViewGroup.MarginLayoutParams params = 
     (ViewGroup.MarginLayoutParams)view.getLayoutParams(); 
params.topMargin = ...; // etc 
// or 
params.setMargins(...); 

你修改的佈局後,調用view.requestLayout()

+0

我得到的錯誤:'應該通過解析的像素尺寸而不是資源ID在這裏:getResources()。getDimension *( - 100)'當將負整數放入第二行時。 –

+0

將我的解決方法添加爲下面的單獨答案。 –

0

使用數學似乎欺騙了我足夠的。

ViewGroup.MarginLayoutParams params = 
    (ViewGroup.MarginLayoutParams)view.getLayoutParams(); 
params.topMargin = 100 - 200; // -100 
相關問題