对于所有Android UI对象,getHeight返回0

我正在构建一个UI,并且都是在XML中静态定义的。它所有的地方都有重量,虽然看起来不错,但我想看看所有东西实际上都具有合适的高度。问题是,无论我在哪里为格式布局调用.getHeight(),都得到0。我在onCreate()和onStart()中都尝试过。一样。也会发生所有UI对象。任何想法?


package com.app.conekta;


import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.Window;

import android.widget.Button;

import android.widget.FrameLayout;

import android.widget.Toast;


public class Conekta extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        requestWindowFeature(Window.FEATURE_NO_TITLE);

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);


    }


    @Override

    public void onStart() {


        super.onStart();



    }


    @Override

    public void onResume() {

        super.onResume();


        FrameLayout fl1 = (FrameLayout) findViewById(R.id.headerFrameLayout);

        FrameLayout fl2 = (FrameLayout) findViewById(R.id.footerFrameLayout);

        Button b=(Button) findViewById(R.id.searchButton);


        Log.d("CONEKTA", String.valueOf(b.getHeight()));


    }

}


当年话下
浏览 680回答 3
3回答

慕容708150

简而言之,视图尚未内置在onCreate(),onStart()或onResume()中。由于它们在技术上不存在(就ViewGroup而言),因此它们的尺寸为0。总而言之,您可以在这里找到有关如何处理的更好说明。如何检索视图的尺寸?

侃侃尔雅

它为0,因为在onCreate和onStart中,该视图实际上都尚未绘制。您可以通过侦听实际绘制视图的时间来解决此问题:final TextView tv = (TextView)findViewById(R.id.venueLabel);final ViewTreeObserver observer= tv.getViewTreeObserver();       observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {            @Override            public void onGlobalLayout() {              tv.getHeight()              observer.removeGlobalOnLayoutListener(this);            }        });那里有删除监听器的调用,以防止重复调用布局更改中的自定义处理程序...如果要获取这些,则可以省略。

慕斯王

使用此功能获取视图的高度或宽度private int getHeightOfView(View contentview) {    contentview.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);    //contentview.getMeasuredWidth();    return contentview.getMeasuredHeight();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Android