0

samsung s2では正常に動作し、samsung s3デバイスレイアウトの高さが減少するように、テキストビューを線形レイアウトに追加しています.レイアウトの高さを見つけていますが、取得していません

4

2 に答える 2

0

レイアウトからビュー ツリー オブザーバーを取得し、それにリスナーをアタッチするだけです。その内部で、高さまたは幅を取得できます。あとは、グローバル レイアウト リスナーのアタッチを解除するだけです。android sdk > 16 の場合は mContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this); を使用する必要があることに注意してください。

private ViewGroup mContainer;

@Override
    public void onResume() {
        super.onResume();
        final ViewTreeObserver observer = mContainer.getViewTreeObserver();
        observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                int layoutHeight = mContainer.getHeight();
                rowHeight = layoutHeight / getResources().getInteger(R.integer.rows);
                mContainer.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                if (Build.VERSION.SDK_INT >= 16) {
                    mContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                }
            });
        }
    }
于 2013-09-24T07:01:56.923 に答える