2013-08-29 41 views
6

Tôi biết cách đặt lề của View theo cách lập trình với LinearLayout.LayoutParams và phương pháp setMargins(int, int, int, int) nhưng làm cách nào tôi có thể đặt lề âm trên một chế độ xem?Đặt lề âm trên Xem theo chương trình

Trả lời

7

Truy cập params bố trí cho bố trí cha mẹ của bạn và thay đổi chúng theo ý muốn:

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

Sau khi bạn đã sửa đổi cách bố trí, gọi view.requestLayout().

+0

Tôi gặp lỗi: 'Phải vượt qua thứ nguyên pixel được giải quyết thay vì id tài nguyên tại đây: getResources(). GetDimension * (- 100)' khi đặt số nguyên âm vào dòng thứ hai. –

+0

Thêm giải pháp thay thế của tôi dưới dạng câu trả lời riêng biệt bên dưới. –

0

Sử dụng toán học dường như lừa đủ cho tôi.

ViewGroup.MarginLayoutParams params = 
    (ViewGroup.MarginLayoutParams)view.getLayoutParams(); 
params.topMargin = 100 - 200; // -100 
Các vấn đề liên quan