我有一个扩展LinearLayout的类,我在构造函数中添加了一些视图。但是我添加的视图没有显示出来。我做错了什么?
我将背景资源设置为绿色。我确实看到了一个绿色的大广场。所以布局自己出现了。
谢谢!
import android.content.Context;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class SuperButton extends LinearLayout
{
private ImageView buttonImage;
private TextView label;
private Context context;
public SuperButton(Context context,
String text,
int imageResource,
int backgroundResource)
{
super(context);
this.context = context;
this.setBackgroundResource(backgroundResource);
this.label = new TextView(context);
this.label.setText("test test test ");
this.label.setBackgroundColor(0xff0f0f0f);
this.buttonImage = new ImageView(context);
this.buttonImage.setImageResource(imageResource);
this.buttonImage.setLayoutParams(new
LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
this.label.setLayoutParams(new LayoutParams(100,100));
this.addView(label);
this.addView(buttonImage);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
}
public void setButtonImage(ImageView buttonImage)
{
this.buttonImage = buttonImage;
}
public ImageView getButtonImage()
{
return buttonImage;
}
public void setLabel(TextView label)
{
this.label = label;
}
public TextView getLabel()
{
return label;
}
}
答案 0 :(得分:0)
我首先尝试使用层次结构查看器来查看视图树中的信息。您可能会在那里找到答案。
答案 1 :(得分:0)
默认情况下生成的onLayout的覆盖不会将其称为超级。这解决了这个问题。
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
super.onLayout(changed, l, t, r, b);
}