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
6
A
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
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
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. –
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. –