在写一个小东西,程序也能跑起来,就是会不断地打印出requestLayout() improperly called by
。查了资料,出现这个报错好像有蛮多原因,没找到具体的解决方法,求助,先谢过。
错误貌似出现在这儿:、
public class ImageText extends LinearLayout{
private Context mContext = null;
private ImageView mImageView = null;
private TextView mTextView = null;
private final static int DEFAULT_IMAGE_WIDTH = 64;
private final static int DEFAULT_IMAGE_HEIGHT = 64;
private int CHECKED_COLOR = Color.rgb(29, 118, 199); //
private int UNCHECKED_COLOR = Color.GRAY; //
public ImageText(Context context) {
super(context);
mContext = context;
Log.v("***imageText","***");
}
public ImageText(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View parentView = inflater.inflate(R.layout.image_text_layout, this, true);
mImageView = (ImageView)findViewById(R.id.iv_icon);
mTextView = (TextView)findViewById(R.id.tv_text);
Log.v("***imageText","***");
}
public void setImage(int id){
if(mImageView != null){
mImageView.setImageResource(id);
setImageSize(DEFAULT_IMAGE_WIDTH, DEFAULT_IMAGE_HEIGHT);
Log.v("***setImage","***");
}
}
public void setText(String s){
Log.v("***setText","***");
if(mTextView != null){
mTextView.setText(s);
mTextView.setTextColor(UNCHECKED_COLOR);
}
}
private void setImageSize(int w, int h){
if(mImageView != null){
ViewGroup.LayoutParams params = mImageView.getLayoutParams();
params.width = w;
params.height = h;
mImageView.setLayoutParams(params);
}
}
public void setChecked(int itemID){
Log.v("***setChecked**","***");
if(mTextView != null){
mTextView.setTextColor(CHECKED_COLOR);
}
int checkDrawableId = -1;
switch (itemID){
case Constant.BTN_FLAG_NEARBY:
checkDrawableId = R.drawable.nearby_selected;
break;
case Constant.BTN_FLAG_MESSAGE:
checkDrawableId = R.drawable.message_selected;
break;
case Constant.BTN_FLAG_DEAL:
checkDrawableId = R.drawable.deal_selected;
break;
case Constant.BTN_FLAG_MY:
checkDrawableId = R.drawable.my_selected;
break;
default:break;
}
if(mImageView != null){
mImageView.setImageResource(checkDrawableId);
}
}
// @Override
// public boolean onInterceptTouchEvent(MotionEvent ev) {
// return true;
// }
}
错误信息,无限地输出日志:
11-14 13:31:33.710 9046-9046/org.vecrates W/View: requestLayout() improperly called by org.vecrates.ui.ImageText{787c549 V.E...C.. ......I. 438,40-536,170 #7f0b0059 app:id/btn_message} during second layout pass: posting in next frame
11-14 13:31:33.710 9046-9046/org.vecrates W/View: requestLayout() improperly called by org.vecrates.ui.ImageText{2616e4e V.E...C.. ......I. 806,40-904,170 #7f0b005a app:id/btn_deal} during second layout pass: posting in next frame
11-14 13:31:33.726 9046-9046/org.vecrates W/View: requestLayout() improperly called by org.vecrates.ui.ImageText{787c549 V.E...C.. ......I. 438,40-536,170 #7f0b0059 app:id/btn_message} during layout: running second layout pass
11-14 13:31:33.726 9046-9046/org.vecrates W/View: requestLayout() improperly called by org.vecrates.ui.ImageText{2616e4e V.E...C.. ......I. 806,40-904,170 #7f0b005a app:id/btn_deal} during layout: running second layout pass
11-14 13:31:33.726 9046-9046/org.vecrates W/View: requestLayout() improperly called by org.vecrates.ui.ImageText{787c549 V.E...C.. ......I. 438,40-536,170 #7f0b0059 app:id/btn_message} during second layout