我创建了一个自定义的viewgroup readpage,在活动中使用它

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    pager=(ReadPage)findViewById(R.id.readpage);
    pager.addArticle("...");
}

而addarticle需要视图的宽度和高度
public void addArticle(String s){
        articles.add(new Article(s,getMeasuredWidth(),getMeasuredHeight()));
}

但当时的测量值和测量值是0。
所以我想知道在哪个状态下,视图会被测量,这样我就能得到它在屏幕上显示的正确值。

最佳答案

这个答案可能会告诉你你需要什么:https://stackoverflow.com/a/1016941/213528
你可能会这样使用它:

private int WIDTH;
private int HEIGHT;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    WIDTH = size.x;
    HEIGHT = size.y;

    pager = (ReadPage)findViewById(R.id.readpage);
    pager.addArticle("...");
}

// ...

public void addArticle(String s){
    articles.add(new Article(s, WIDTH, HEIGHT));
}

08-25 22:41