Tôi có một tùy chỉnh ViewGroup
với một số chế độ xem bên trong.force onLayout trong subView có kích thước không thay đổi
Để trả lời sự kiện, một requestLayout được gọi và trong OnLayout
một số chế độ xem sẽ nhận vị trí bố cục mới.
Một trong số họ duy trì vị trí của nó nhưng cần được sắp xếp lại bên trong. Tuy nhiên phương thức onlayout của view này sẽ không được gọi vì vị trí layout của nó không thay đổi. Cố gắng gọi requestLayout
, forceLayout
hoặc invalidate
trong chế độ xem này không hoạt động.
Thủ thuật bẩn thỉu duy nhất mà tôi tìm thấy là thay đổi một số vị trí giá trị của nó để buộc thay đổi bố cục, nhưng tôi nghĩ cần có cách tốt hơn. Vì vậy, bây giờ tôi làm điều gì đó (khủng khiếp) như:
int patch = 0;
@Override protected void onLayout(boolean changed, int l, int t, int r, int b) {
...
_myView.patchedLayout(patch);
_myview.layout(l1, t1 , r1, t1+patch);
patch = (patch+1) % 2;
...
}
Bất kỳ cách nào để có được kết quả tương tự một cách tốt hơn?