Получить ширину и высоту экрана в фрагменте
Если я расширяю активность в своем приложении, я могу получить ширину и высоту:
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, и я не могу использовать приведенный выше код для получения ширины.
Ответы
Ответ 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()