自定义视图不会绘制任何内容

时间:2014-08-22 16:22:43

标签: android android-custom-view

我有一个自定义视图在切换按钮内绘制,但当一个膨胀布局我看不到任何东西.. 我把一个linearlayout作为根视图,在里面我设置了我需要的元素。 这是我的代码: 用于实例化根视图()

的根类
public abstract class ReplyView extends LinearLayout {

    public ReplyView(Context context) {
        super(context);
        init(context);
    }

    public ReplyView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }

    public ReplyView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context);
    }

    public void init(Context context) {
        setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        initializeComponents();
    }

    public abstract void initializeComponents();

    public abstract String getResult();
}

我自定义此类的实现:

public class YesNoReplyView extends ReplyView {

    private ToggleButton toggleButton;

    public YesNoReplyView(Context context) {
        super(context);
    }

    public YesNoReplyView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public YesNoReplyView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void initializeComponents() {
        toggleButton = new ToggleButton(getContext());
        toggleButton.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
        toggleButton.setTextOn("Si");
        toggleButton.setTextOn("No");
        toggleButton.setBackground(getContext().getResources().getDrawable(R.drawable.selector_toggle));        
    addView(toggleButton, new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

    }


    @Override
    public String getResult() {
        String result = toggleButton.isChecked() ? "Si" : "No";
        return result;
    }
}

问题是什么?我看到每个元素都是可见的......

0 个答案:

没有答案