0

addOnGlobalLayoutListenerメイン アクティビティ (A) のセクションで拡張ビュー (doodleView) を測定するために、次を実装していますOnCreate

  doodleView = (DoodleView) findViewById(R.id.doodleView);
  doodleView.setOnTouchListener(this);    

  doodleView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() 
  {
        @Override
        public void onGlobalLayout() 
        {
            doodleViewWidth = doodleView.getWidth(); 
            doodleViewHeight = doodleView.getHeight();
        }
  });

addOnGlobalLayoutListenerただし、次のエラー ステートメントでは赤で下線が引かれています。

The method addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener) in the type ViewTreeObserver is not applicable for the arguments (new OnGlobalLayoutListener(){})

Web を調査しましたが、エラーの理由が見つかりません。問題を知っている人はいますか?よろしくお願いします!

4

2 に答える 2

0

私も同じ問題を抱えていました。関数を次のように変更しました

doodleView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() 
  {
        @Override
        public void onGlobalLayout() 
        {
            doodleViewWidth = doodleView.getWidth(); 
            doodleViewHeight = doodleView.getHeight();
        }
  });

私が行ったのは、ViewTreeObserver前にクラス名を追加しただけOnGlobalLayoutListener()です。

于 2013-11-06T12:27:28.173 に答える