簡體   English   中英

getWidth()和getHeight()返回0值

[英]getWidth() and getHeight() return 0 value

您好,我在android中創建了個人視圖,當我想獲取其尺寸時,我總是得到0值,我發現我應該在代碼中延遲此操作,我有一個問題可以這樣做嗎? 我得到很好的尺寸

Personalview myView = (Personalview)findViewById(R.id.myView);
myView.postDelayed(new Runnable() {
    @Override
    public void run() {
        Log.i("WIDTH",String.valueOf(myView .getHeight()));
        Log.i("HEIGHT",String.valueOf(myView .height()));
    }
},1000);

使用OnLayoutChangeListener

myView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                myView.removeOnLayoutChangeListener(this);

                // get dimensions now
            }
        });

這比設置任意延遲更好。 View的邊界由於布局處理而改變時,您將獲得一個回調。 因此,您將在onLayoutChange回調中獲得適當的尺寸。 不要忘記在第一個回調之后刪除監聽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM