Android:OnNewIntent在充气前需要自定义视图大小

时间:2012-06-10 14:04:02

标签: android android-layout android-intent

我只想计算一些在onNewIntend(Intent intent)方法中绘制的线位置。考虑到一些纬度/经度,我必须将它们放入自定义视图中。 对于这个计算 - 这是我的问题 - 我需要myView.getHeight()/ getWidth()方法为0,因为在onCreate(...)之前调用onNewIntend(...)。 :/

你有任何想法来解决这个问题吗?

我已经尝试过了......

@Override
public void onNewIntent(Intent intent) {
    final String action = intent.getAction();

    if (Intent.ACTION_RUN.equals(action)) {         

        // @Todo: Here should be checked if view is already inflated ...
        setContentView(R.layout.collector);
        int x = mGraphView.getMeasuredHeight(); 
        ...

......这也导致x = 0

非常感谢!

1 个答案:

答案 0 :(得分:0)

在自定义视图中覆盖onMeasure,以便在父级视图请求自行测量时获取宽度和高度。您可以添加布局侦听器

http://developer.android.com/reference/android/view/View.OnLayoutChangeListener.html

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
   int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
   int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
   this.setMeasuredDimension(parentWidth/2, parentHeight);
   this.setLayoutParams(new *ParentLayoutType*.LayoutParams(parentWidth/2,parentHeight));
   super.onMeasure(widthMeasureSpec, heightMeasureSpec);

}