一旦我知道父宽度,如何以编程方式添加控件?

时间:2017-01-19 14:56:51

标签: android controls

我有一个继承自LinearLayout的自定义控件,我想在知道这个自定义控件的大小后立即添加一个子控件。

执行此操作的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

以下代码正常运行:

       yourView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
            @Override
            public boolean onPreDraw() {
                //yourView.getWidth()
                yourView.getViewTreeObserver().removeOnPreDrawListener(this);
                return true;
            }
        });

希望这会有所帮助。

答案 1 :(得分:0)

您必须在自定义布局中覆盖 onFinishInflate()方法。这是在所有视图都被夸大时调用的回调。使用它并添加你的观点。

答案 2 :(得分:0)

这可能会有所帮助:

/**
 * Great workaround to get view infos after it has been drawn
 */
mCustomView.post(new Runnable() {
        @Override
        public void run() {
            //The code you want to run
        }
    });