【发布时间】:2012-07-05 11:34:53
【问题描述】:
我有一个自定义 ViewGroup,里面有一些视图。
为了响应一个事件,一个 requestLayout 被调用并且在OnLayout 一些视图将会
获取新的布局位置。
其中一个保持其位置,但需要在内部重新排列。但是,不会调用此视图的 onlayout 方法,因为它的布局位置不会改变。在此视图中尝试调用requestLayout、forceLayout 或invalidate 不起作用。
我发现的唯一肮脏的技巧是更改其一些值位置以强制更改布局,但我认为应该有更好的方法。所以,现在我做了一些(可怕的)事情,比如:
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;
...
}
有什么方法可以更好地获得相同的结果?
【问题讨论】:
标签: android android-layout viewgroup