Получить ширину и высоту экрана в фрагменте - программирование
Подтвердить что ты не робот

Получить ширину и высоту экрана в фрагменте

Если я расширяю активность в своем приложении, я могу получить ширину и высоту:

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int wwidth = displaymetrics.widthPixels;

или

Display display = getWindowManager().getDefaultDisplay(); 
stageWidth = display.getWidth();
stageHeight = display.getHeigth();

Но в настоящее время я расширяю fragement, и я не могу использовать приведенный выше код для получения ширины.

4b9b3361

Ответ 1

Попробуйте использовать свой модифицированный код

DisplayMetrics displaymetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;

или

Display display = getActivity().getWindowManager().getDefaultDisplay(); 
stageWidth = display.getWidth();
stageHeight = display.getHeigth();

В основном вам просто нужно поставить getActivity() (чтобы получить контекст) до функции getWindowManager().

Ответ 2

Этот код также работает с фрагментами:

int width = getResources().getConfiguration().screenWidthDp;
int height = getResources().getConfiguration().screenHeightDp;

Для сравнения ориентации:

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){...}

Ответ 3

Это даст вам то, что вы хотите, без необходимости для контекста или просмотра:

import android.content.res.Resources;

int width = Resources.getSystem().getDisplayMetrics().widthPixels;

int height = Resources.getSystem().getDisplayMetrics().heightPixels;

Ответ 4

Fragment currentFragment = getActivity().getFragmentManager().findFragmentById(R.id.fragment_container);
int width = currentFragment.getView().getWidth()