2014-10-28 2 views
14

Я пробовал все, чтобы получить эту работу, и не могу понять это.Диалоговое окно предупреждения Android не правильно написано на Lollipop

Я пытаюсь использовать диалоговое окно предупреждения в моем приложении. Он отлично работает на KitKat, но не на Lollipop.

Я даже пробовал использовать много диалоговых материалов на GitHub, и они снова работают на Kitkat, но не на Lollipop.

Я тестирую свой Nexus 5 с изображением фабрики nexus.

KITKAT С GitHub МАТЕРИАЛ ДИАЛОГ

enter image description here

KITKAT с штоком ТРЕВОГА DIALOG

enter image description here

леденец С GitHub МАТЕРИАЛ DIALOG

enter image description here

LOLLIPOP С STOCK ALERT DIALOG

enter image description here

Кроме того, это библиотека на GitHub, установленной на том же устройстве, его не работать. Так что это что-то о моем приложении, которое вызывает это. что это может быть

enter image description here

+1

Хорошо. если обнаружит проблему, но не уверен, как ее исправить. У меня есть fitsSystemWindows, установленный в true в моих стилях. После удаления диалоговые окна хороши. Но не мой макет перепутался :( – Bignadad

ответ

25

андроид: fitsSystemWindows = "истинный" был виновником.

У меня было это в моих стилях.xml.

Удалено из файла styles.xml и помещено в мой макет, и теперь он работает.

+0

Я по-прежнему сталкивался с некоторыми странными проблемами стиля на Lollipop для моего «EditText» (внутри настраиваемого представления, которое я установил), несмотря на то, что вы следовали вашему предложению. Исправление заключалось в том, чтобы установить 'fitsSystemWindows' значение false «EditText». Кроме того, добавление может быть потеряно в пользовательском представлении, вместо этого, используя поля, где это возможно, разрешит проблему. – Jun

+2

FYI. Если у вас есть fitsSystemWindows, применяемый к стилю, который затем применяется в качестве темы в Activity (или все приложение), то этот атрибут будет применяться к КАЖДОМУ представлению в этом мероприятии или приложении. Ссылка: http://developer.android.com/guide/topics/ui/themes.html#ApplyingStyles. Поскольку диалог имеет свои если у вас есть диалог с Activity (или Application), он будет иметь этот атрибут, и текст будет расширяться, чтобы он соответствовал окну. По крайней мере, я уверен, что это произошло в моем случае. :) – stuckj

+0

Сохранено мое день :) –

0

У меня была такая же проблема, и я не нашел fitsSystemWindows в любом из моих styles.xml.

Чтобы решить эту проблему, я должен был обернуть макет в FrameLayout и добавить поля в макете, как это:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="@dimen/dialog_margin_title" 
     android:layout_marginBottom="@dimen/dialog_margin" 
     android:layout_marginLeft="@dimen/dialog_margin" 
     android:layout_marginStart="@dimen/dialog_margin" 
     android:layout_marginRight="@dimen/dialog_margin" 
     android:layout_marginEnd="@dimen/dialog_margin" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/textView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Please enter the email address of the person you would like to follow, this person will be notified." /> 

     <EditText 
      android:id="@+id/editText" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="textEmailAddress" /> 
    </LinearLayout> 
</FrameLayout>