Intereting Posts
Как создать прядильщик Android без треугольника в правой части виджета Почему мне нужно обернуть ImageView в FrameLayout? Всплывающее всплывающее окно доступа к устройству USB? Жесткий vs Один многоразовый битмап лучше с памятью? Загрузка html-файла в веб-обозреватель в Android-папке с помощью Android Studio Unit Test для Android Fragment Как кодировать url в android? Фрагменты – указанный ребенок уже имеет родителя. Вы должны сначала вызвать removeView () родителя ребенка Android: onDestroy () или аналогичный метод в классе приложения Java / Android – Как распечатать полную трассировку стека? Android масштабирование изображений до плотности экрана Изменить цвет курсора edittext Перезагрузка приемника не работает на телефонах xiaomi Пример кинжала, построенный через eclipse, не выполняется: «Пожалуйста, убедитесь, что для этого модуля была запущена генерация кода». Программирование для Android как слепого

Измерение вида в фрагменте

Мне нужно знать ширину и высоту ImageView. Есть ли способ измерить его по фрагменту? В стандартной операции я использую это:

@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); image.getWidth(); image.getHeight(); } 

Но где я могу использовать image.getWidth(); И image.getHeight(); В фрагменте?

Solutions Collecting From Web of "Измерение вида в фрагменте"

Используйте GlobalLayoutListener . Вы назначаете слушателю свой ImageView в onCreateView() как и в этом ответе в ссылке. Он также более надежен, чем onWindowFocusChanged() для основной активности, поэтому я рекомендую стратегии переключения.

РЕДАКТИРОВАТЬ

Пример:

 final View testView = findViewById(R.id.view_id); ViewTreeObserver vto = testView.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Log.d("TEST", "Height = " + testView.getHeight() + " Width = " + testView.getWidth()); ViewTreeObserver obs = testView.getViewTreeObserver(); obs.removeGlobalOnLayoutListener(this); } });