Android正确的地方来膨胀自定义视图

时间:2017-07-05 02:04:14

标签: android android-layout android-view

我有这个自定义视图:

class BaseView extends FrameLayout() {
     @Override
     void onAttachedToWindow() {
         View.inflate(context, R.layout.view, this)
     }
}

在onAttachedToWindow方法中填充自定义视图的正确位置是什么?

我想在onAttach可以让父布局完全重绘之后可能会膨胀它。

如果在onAttachedToWindow中充气是错误的,那么哪里是正确的地方?

此视图是动态添加的(通过addView),而在其他地方则是放在xml定义中。

1 个答案:

答案 0 :(得分:4)

扩充自定义视图布局的正确位置在构造函数中:

class BaseView extends FrameLayout {
    public BaseView(Context context) { this(context, null); }

    public BaseView(Context context, AttributeSet attrs) {
        super(context, attrs);

        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.view, this, true);

        ...
    }
}