Вернуть текущую раскладку Android или ширину экрана для отладки - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь добавить условную обработку в зависимости от ширины экрана. Я установил refs в моем /res/values, чтобы он указывал на соответствующий ресурс на ширине экрана> 600 (sw600dp), у меня есть два макета и т. Д. Затем у меня есть

Log.d(TAG, "From mButton onClick, layout: " + getActivity().????);
if (getActivity().findViewById(R.id.dialog_widget) == null) {
    Intent intent = WidgetActivity.newIntent(getActivity(), mThinger.getInfo());
    Log.d(TAG, "From mButton onClick, intent: " + intent.toString());
    startActivityForResult(intent, REQUEST_INFO);
} else {
    FragmentManager manager = getFragmentManager();
    WidgetDialogFragment dialog = WidgetDialogFragment.newInstance(mThinger.getInfo());
    dialog.setTargetFragment(ThingerFragment.this, REQUEST_INFO);
    dialog.show(manager, DIALOG_INFO);
}

Я никогда не выполняю условие else, поэтому я пытаюсь добавить Log (см. Первую строку блока кода), чтобы сообщить мне, какие элементы макета доступны, или какова ширина экрана, или что-нибудь помогите мне понять, почему я не вижу фрагмент на больших экранах. Спасибо!

1 Ответ

0 голосов
/ 13 мая 2018

Может быть, это немного поможет - при запуске моего приложения я всегда регистрирую:

    DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
    float dpHeight = displayMetrics.heightPixels / displayMetrics.density;
    float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
    Log.e(TAG,"dpHeight= "+dpHeight+" dpWidth="+dpWidth);

И еще один трюк для регистрации макета экрана, определенного системой, заключается в использовании макета «значений».определенные папки:

values-sw320dp/
values-sw420dp/
values-sw600dp/
values-sw720dp/

и в каждой папке определяют strings.xml (или любой ресурс значений), который выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="selected_configuration">sw320dp</string>
</resources>

и в главном журнале приложений Applicaton класса:

Log.d(TAG, "Selected configuration: "+getString(R.string.selected_configuration));

Вы можете использовать другое значение ресурса, кроме строки, конечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...