谁能告诉我如何修复以下跟踪:
W/View (16810): requestLayout() improperly called by
theme.effects.TopCenterImageView{41dc73f0 V.ED.... ........
0,0-480,690 #7f060066 app:id/normal_image} during second
layout pass: posting in next frame
以下是TopCenterImageView的代码:
public class TopCenterImageView extends ImageView {
public TopCenterImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setScaleType(ScaleType.MATRIX);
}
public TopCenterImageView(Context context, AttributeSet attrs) {
super(context, attrs);
setScaleType(ScaleType.MATRIX);
}
public TopCenterImageView(Context context) {
super(context);
setScaleType(ScaleType.MATRIX);
}
@Override
protected boolean setFrame(int l, int t, int r, int b) {
if (getDrawable() == null) {
return super.setFrame(l, t, r, b);
}
Matrix matrix = getImageMatrix();
float scaleFactor = getWidth() / (float) getDrawable().getIntrinsicWidth();
matrix.setScale(scaleFactor, scaleFactor, 0, 0);
setImageMatrix(matrix);
return super.setFrame(l, t, r, b);
}
}
发布于 2014-02-12 18:17:02
发布于 2014-11-08 00:45:19
在调用super.onLayout()之后,我在onLayout方法中更改了一个子视图布局参数,这导致了一个递归:
子布局参数已更改->父视图onRequestLayout() ->父视图onLayout ->子视图参数已更改-> ...
https://stackoverflow.com/questions/20717022
复制相似问题