Android 为什么可以';在扩展RelativeLayout的类的构造函数中,是否在函数addview()之后显示视图?

Android 为什么可以';在扩展RelativeLayout的类的构造函数中,是否在函数addview()之后显示视图?,android,Android,我已经实现了一个自定义视图,它扩展了RelatviewLayout,并在构造函数中添加了其他视图。但什么都不显示是错误的。构造函数中的addview()错误吗 ThreePointTitle,java public class ThreePointTitle extends RelativeLayout { /** return **/ private ImageView mLeft; /** title **/ private TextView mTitle; /** text(option)

我已经实现了一个自定义视图,它扩展了RelatviewLayout,并在构造函数中添加了其他视图。但什么都不显示是错误的。构造函数中的addview()错误吗

ThreePointTitle,java

public class ThreePointTitle extends RelativeLayout {
/** return **/
private ImageView mLeft;
/** title **/
private TextView mTitle;
/** text(option) **/
private TextView mRight;

public ThreePointTitle(final Context context, AttributeSet attrs) {
    super(context, attrs);
    mLeft = new ImageView(context);
    mLeft.setImageResource(R.drawable.three_point_left_arrow);
    RelativeLayout.LayoutParams leftParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    leftParams.addRule(RelativeLayout.CENTER_VERTICAL, TRUE);
    leftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, TRUE);
    if (showLeft()) {
        mLeft.setVisibility(VISIBLE);
    } else {
        mLeft.setVisibility(GONE);
    }
    addView(mLeft, leftParams);

    mTitle = new TextView(context);
    mTitle.setTextSize(R.dimen.text_size_middle);
    RelativeLayout.LayoutParams centerParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    centerParams.addRule(RelativeLayout.CENTER_IN_PARENT, TRUE);
    addView(mTitle, centerParams);

    mRight = new TextView(context);
    mRight.setTextColor(getResources().getColor(R.color.sky_blue));
    RelativeLayout.LayoutParams rightParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    rightParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, TRUE);
    rightParams.addRule(RelativeLayout.CENTER_VERTICAL, TRUE);
    if (showRight()) {
        mRight.setVisibility(VISIBLE);
    } else {
        mRight.setVisibility(GONE);
    }
    addView(mRight, rightParams);
}}

但是它只显示左imageview,而不显示中间标题。如果showleet()返回true?

这个类还有2个或3个构造函数,您应该覆盖所有构造函数。我认为您重写了错误的构造函数,如果您构建了一个自定义视图,那么您应该实现并重写所有的构造函数……奇怪的是,它可以显示我添加的左ImageView。我试图重写中心标题的函数onDraw(),但在onMeasure()之后将不会调用它。好的,我知道我的问题是什么。mTitle.setTextSize(R.dimen.text\u size\u middle使其比父视图大,这样它就不会显示文本。正确的是mTitle.setTextSize(getResources().getdimen(R.dimen.text\u size\u middle));这个类还有2个或3个构造函数,你应该重写它们。我认为你重写了错误的构造函数,如果你构建了一个自定义视图,你应该实现并重写所有的构造函数……奇怪的是,它可以显示我添加的左ImageView。我试图重写函数onDraw()好的,我知道我的问题是什么。mTitle.setTextSize(R.dimen.text\u size\u middle使它比父视图大,这样它就不会显示文本。正确的是mTitle.setTextSize(getResources().getdimen(R.dimen.text\u size\u middle));