Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 视图的高度和宽度始终为0(getMeasuredHeight()和getHeight()都不工作)_Java_Android_Android Layout_Android Linearlayout - Fatal编程技术网

Java 视图的高度和宽度始终为0(getMeasuredHeight()和getHeight()都不工作)

Java 视图的高度和宽度始终为0(getMeasuredHeight()和getHeight()都不工作),java,android,android-layout,android-linearlayout,Java,Android,Android Layout,Android Linearlayout,我在LinearLayout内部有一个LinearLayout,子LinearLayout有其布局参数,其中高度和宽度定义为 LinearLayout linearLayout=new LinearLayout(context); LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(50,50); linearLayout.setLayoutParams(lp); 现在,在创建视图之后,我正在尝试

我在
LinearLayout
内部有一个
LinearLayout
,子
LinearLayout
有其
布局参数
,其中
高度和
宽度定义为

LinearLayout linearLayout=new LinearLayout(context);
        LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(50,50);
        linearLayout.setLayoutParams(lp);
现在,在创建视图之后,我正在尝试从
getHeight()
getmeasuredheath()
获取视图的高度,但这两种方法都返回0

  int heightofView=linearLayout.getHeight(); 
  int heightofview=linearLayout.getMeasuredHeight();
为什么这两种方法都返回视图的0高度?这些方法何时返回实际结果?如何获取我创建的视图的高度?

试试下面的代码

imageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
      @Override
      public void onGlobalLayout() {
           int width = imageView.getWidth();
           int height = imageView.getHeight();
           //you can add your code here on what you want to do to the height and width you can pass it as parameter or make width and height a global variable
           imageView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
      }
});
试试这个代码

imageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
      @Override
      public void onGlobalLayout() {
           int width = imageView.getWidth();
           int height = imageView.getHeight();
           //you can add your code here on what you want to do to the height and width you can pass it as parameter or make width and height a global variable
           imageView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
      }
});
按以下步骤做-

linearLayout.post(new Runnable() {
            @Override
            public void run() {
                int linearLayoutHeight = linearLayout.getHeight();
                Log.e("MS", "linearLayout Ht = " + linearLayoutHeight);
            }
        });
按以下步骤做-

linearLayout.post(new Runnable() {
            @Override
            public void run() {
                int linearLayoutHeight = linearLayout.getHeight();
                Log.e("MS", "linearLayout Ht = " + linearLayoutHeight);
            }
        });