Android 在构建活动期间获取宽度

Android 在构建活动期间获取宽度,android,android-layout,Android,Android Layout,我有个问题,我似乎不知道该怎么办。 我是Android开发新手,但我有Java方面的经验 在onCreate(bundle)、onPostCreate(bundle)或任何其他类似方法期间,我无法获得视图的正确宽度。它返回0。我还为debug purposses制作了一个简单的按钮,该按钮返回正确的值 如何调用在onCreate方法之后获取视图宽度的方法? 如果这是不可能的,什么是解决办法 提前感谢, Gerralt正如我所想,您使用的是onCreate(Bundle)方法: 对不起,如果我错了

我有个问题,我似乎不知道该怎么办。 我是Android开发新手,但我有Java方面的经验

在onCreate(bundle)、onPostCreate(bundle)或任何其他类似方法期间,我无法获得视图的正确宽度。它返回0。我还为debug purposses制作了一个简单的按钮,该按钮返回正确的值

如何调用在onCreate方法之后获取视图宽度的方法? 如果这是不可能的,什么是解决办法

提前感谢,


Gerralt

正如我所想,您使用的是onCreate(Bundle)方法:

对不起,如果我错了,但在我的项目中它是有效的。好的,我不得不说我经常使用
自定义视图和使用大小不是在“我的活动代码”中,而是在“视图代码”中。

问题在于,您试图在开始活动后立即找出宽度。 但是在这个位置上,你的观点不会发生真正的转变。Android提供了一个特殊的回调来查找所有单个视图的宽度和高度。要访问它,必须重写
onWindowFoucChanged()
方法。这是一个样本

@Override 
public void onWindowFocusChanged(boolean hasFocus) 
{ 
     // TODO Auto-generated method stub 
     super.onWindowFocusChanged(hasFocus);
     System.out.println("...Height..."+textview.getMeasuredWidth()); 
}

此行
textview.getMeasuredWidth()
帮助您在运行时查找textview的实际宽度。类似地,您可以使用此方法找到任何视图的宽度和高度。

执行此操作时,请使用WindowFocusChanged()如下所示:

@Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
            if(hasFocus && llfullscreen!=null){
        int layoutHeight = llfullscreen.getHeight(); 
                ViewGroup.LayoutParams params = lv.getLayoutParams();
        params.height = lv/2; //Set to half the screens size
        this.lv.setLayoutParams(params);
        this.lv.invalidate();
             }
    }

谢谢!这就是我需要的!
@Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
            if(hasFocus && llfullscreen!=null){
        int layoutHeight = llfullscreen.getHeight(); 
                ViewGroup.LayoutParams params = lv.getLayoutParams();
        params.height = lv/2; //Set to half the screens size
        this.lv.setLayoutParams(params);
        this.lv.invalidate();
             }
    }