gpt4 book ai didi

android - 跟踪 : requestLayout() improperly called?

转载 作者:IT老高 更新时间:2023-10-28 23:11:38 26 4
gpt4 key购买 nike

谁能告诉我如何修复以下跟踪:

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);
}

}

最佳答案

如所见 here ,setScaleType会调用requestLayout,但是ImageView的构造函数之前已经调用过了。所以它会导致布局有多个 requestLayout 被调用,一个在布局过程中。这只是一个警告,因为在小范围内,这不是问题。

您会在 this 中找到一些很好的研究。线程(虽然不是 roboguice 部分)。

关于android - 跟踪 : requestLayout() improperly called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20717022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com