У меня есть XML, который использует следующие отступы в макете:Android устройств Изменение горизонтального отступа сама себя во время выполнения
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
где оба @dimen/activity_vertical_margin
и @dimen/activity_horizontal_margin
являются 14dp
каждый.
В моем классе Java, я использую тост, чтобы увидеть, во время выполнения, чем фактические поля являются:
int vert = (int) getResources().getDimension(R.dimen.activity_vertical_margin);
int horz = (int) getResources().getDimension(R.dimen.activity_horizontal_margin);
Toast.makeText(getApplicationContext(), "vert: " + vert + "\n" + "horz: " + horz, Toast.LENGTH_LONG).show();
Я пробовал на 3-х различных устройств:
- Samsung Galaxy S4 (Android версия 4.2.2)
- Samsung Galaxy S3 (Android версии 4.1.2)
- Motorola XOOM (Android версии 4.1.2)
Для обоих галактик Samsung я получаю возвращаемое значение как для vert
, так и для horz
как 42. Это верно, являются ли устройства вертикальными или горизонтальными. (Почему они не равны 14, я не уверен, но до тех пор, пока они постоянны, я доволен.)
Однако для XOOM я получаю возвращаемое значение как для vert
, так и для horz
как 14, когда устройство вертикально. НО, когда я поворачиваю его на горизонтальный, vert
остается на 14 и horz
становится 128 (почти в 10 раз больше его вертикального значения).
Мой вопрос: почему это автоматическое изменение во время выполнения? В коде нет ничего, что ссылается на него и меняет его (я знаю это, потому что другие устройства не имеют этой проблемы).
Как правило, мне было бы неинтересно об этом, но в этом случае мой пользовательский интерфейс выглядит довольно напуганным. Я просмотрел его, но это не похоже на то, что кто-то еще имеет изменения полей на них во время выполнения.
Fantastic! Именно в этом и была проблема. :) Благодаря! – user2323030