在创建 cutomView 时不添加视图?

Posted

技术标签:

【中文标题】在创建 cutomView 时不添加视图?【英文标题】:while creating a cutomView doesn't addView? 【发布时间】:2012-06-29 09:50:41 【问题描述】:

我需要创建一个自定义视图,它扩展了RelativeLayout,并且只需要拥有和imageView 一样大小的这个customView。

我的代码是:

public class MyCustomButton extends RelativeLayout 

ImageView buttonCoverImage;

public MyCustomButton(Context context, AttributeSet attrs, int defStyle) 
    super(context, attrs, defStyle);


public MyCustomButton(Context context, AttributeSet attrs) 
    super(context, attrs);


public MyCustomButton(Context context) 
    super(context);

    setClickable(true);
    setFocusable(true);
    setEnabled(true);

    buttonCoverImage = new ImageView(getContext());

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    setLayoutParams(lp);

    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

    buttonCoverImage.setLayoutParams(new RelativeLayout.LayoutParams(100, 100));

    buttonCoverImage.setBackgroundResource(R.drawable.button_selector);
    buttonCoverImage.setOnClickListener(new View.OnClickListener() 
        public void onClick(View arg0) 
            performClick();
        
    );

    this.addView(buttonCoverImage);
   

在 xml 中,我创建了这样的视图:

问题是我看不到 buttonCoverImage?不知何故,它没有被创建或添加到 myCustomView... 可能是什么问题?

【问题讨论】:

【参考方案1】:

如果通过xml添加View,那么android会实现构造函数

public MyCustomButton(Context context, AttributeSet attrs) 
    super(context, attrs);

在你的情况下它是空的。我认为这是你的问题。

【讨论】:

只需在这个构造函数中使用 LogCat。如果我是对的,您将看到您的日志文本。希望我是对的) 是的,你绝对是对的 =) 再次感谢。问题解决了 =)

以上是关于在创建 cutomView 时不添加视图?的主要内容,如果未能解决你的问题,请参考以下文章

在垂直列表视图中添加水平列表视图时不正确使用 ParentDataWidget

CALayer 在视图可见后添加时不渲染

swift 3.0 转换添加到视图字典时不明确使用 tableView

在添加 LinkPresentation 视图的堆栈上重用单元格时不显示元素

将视图与包含标签一起使用时不可见

FirstViewController 在删除 SecondViewController 的子视图时不起作用