Intereting Posts
ActionBar не отображается GoogleAuthUtil.getToken () возвращает недопустимый токен («kid» не находится в списке открытых ключей, а «exp» – вс 18 января 1970 года) IllegalStateException с использованием библиотеки эффектов Ripple на устройствах Android M Может ли Android MulticastLock использоваться для мониторинга запросов 802.11 Probe от других устройств? Android программно включает в себя макет (т.е. без XML) Линейное направление ускорения для отслеживания движения вверх и вниз по телефону Использование android.support.v7.widget.CardView в моем проекте (Eclipse) Ошибка компиляции Studio Studio: enum constant INSTANT_RUN_REPLACEMENT не существует в классе Как сделать RTSP-сервер на Android-телефоне? Могу ли я определить, действительна ли ссылка на действие? Как остановить Open GL renderer Предпочтения и явные намерения Установите фактическое заполнение текста в TextView с составными чертежами Изменить язык приложения в android 5.0 не работает SetContentView вызывает исключение Null Pointer

Кнопка Android 5: под панелью softnavigation (изображение Showcaseview)

Я использую устаревший ShowcaseView для Android. Я замечаю, что эмулятор Android 5 помещает кнопку ОК под панель softnavigation, тогда как Android <= KITKAT не имеет такого поведения.

См. Кнопку ОК в нижнем правом углу: http://imgur.com/SZtIcHr

Я уже пробовал Android: fitsSystemWindows = "true", но не успел . Вот соответствующий код в ShowcaseView.java, который я нашел:

mEndButton = (Button) LayoutInflater.from(context).inflate(R.layout.showcase_button, null); 

(Предупреждение: избегайте передачи null в качестве корня представления (необходимо для разрешения параметров макета на корневом элементе раздутого макета)) [..]

  if (!mOptions.noButton && mEndButton.getParent() == null) { RelativeLayout.LayoutParams lps = (LayoutParams) generateDefaultLayoutParams(); lps.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); if (getConfigOptions().showcaseId==3) lps.addRule(RelativeLayout.ALIGN_PARENT_LEFT); else lps.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); int margin = ((Number) (metricScale * 12)).intValue(); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) // TODO: LOLLIPOP workaround lps.setMargins(margin, margin, margin, margin*5); else lps.setMargins(margin, margin, margin, margin); lps.height = LayoutParams.WRAP_CONTENT; lps.width = LayoutParams.WRAP_CONTENT; mEndButton.setLayoutParams(lps); mEndButton.setText(buttonText != null ? buttonText : getResources().getString(R.string.positive)); if (!hasCustomClickListener) mEndButton.setOnClickListener(this); addView(mEndButton); 

Я не знаю, как изменить это или как Android 5 / материальный дизайн вызвал такое поведение. Я был бы рад за намек! 🙂

Для меня работы устанавливают вручную нижнюю границу поля без использования поля, возвращаемого методом, для получения int margin.

 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); int margin = ((Number) (context.getResources().getDisplayMetrics().density * 12)).intValue(); layoutParams.setMargins(margin, margin, margin, 120); 

Надеюсь, что это работает…


Проблема здесь исправлена ​​…

Я нашел очень легкое решение для этого в одном из запросов на получение

Добавить:

 <item name="android:windowDrawsSystemBarBackgrounds">false</item> 

К вашему стилю / теме в значениях-v21 / styles.xml.

Хорошо работает для меня, проверен на реальном устройстве – Nexus 5.