EditText теряет свои границы после сбоя при отправке

Я построил экран, который выглядит так:

но если войти не удается, экран выглядит так:

Я использовал EditText, и код выглядит так:

<TextView android:layout_height="wrap_content"  
            android:layout_width="wrap_content"  
            android:text="email"></TextView>  
        <EditText 
            android:layout_height="wrap_content"  
            android:layout_width="fill_parent" 
            android:id="@+id/username"
            android:hint=""
            android:textStyle="normal"
    android:singleLine="true" 
            android:inputType="textEmailAddress">                
        </EditText>  
        <TextView android:layout_height="wrap_content"  
            android:layout_width="wrap_content"  
            android:text="password">
        </TextView>  
        <EditText 
            android:layout_height="wrap_content"  
            android:layout_width="fill_parent"
            android:id="@+id/uc_txt_password" 
            android:hint=""
            android:textStyle="normal"
    android:singleLine="true"
            android:inputType="textPassword">
        </EditText>  

Любые идеи?

Обновление: кажется, что фальшивое отображение — это то, как оно отображается на Ice-cream-sandwich по умолчанию. Я использую более старую версию Android (2.2), на которой дисплей выглядит как первое прикрепленное изображение.


person Nir Alfasi    schedule 21.11.2011    source источник
comment
@Vivek, пожалуйста, будьте более осторожны при редактировании, вы удалили изображения.   -  person Shadow Wizard Wearing Mask V2    schedule 21.11.2011
comment
О, мне очень жаль. Я этого не заметил. Большое спасибо @Shadow Wizard   -  person Vivek Kalkur    schedule 21.11.2011
comment
Это фоны edittext по умолчанию?   -  person jakk    schedule 21.11.2011
comment
@Shadow Wizard - что ты имеешь в виду? Вы можете быть более конкретным ?   -  person Nir Alfasi    schedule 23.11.2011
comment
alfasin, извините, я не с вами разговаривал. Вивек отредактировал ваш пост, чтобы исправить некоторые грамматические ошибки, и удалил изображения, добавленные Адилом в предыдущем редактировании. @Vivek - в @ должно быть место раньше, чтобы ваше уведомление не прошло, увидело его только сейчас.   -  person Shadow Wizard Wearing Mask V2    schedule 23.11.2011
comment
не могли бы вы добавить свой код активности?   -  person user936414    schedule 21.02.2012
comment
слишком много кода для добавления в этом контексте.   -  person Nir Alfasi    schedule 21.02.2012


Ответы (2)


ICS представляет более «открытый» текстовый макет (посмотрите на приложение Gmail), где стиль редактирования текста по умолчанию не имеет границ. Вы должны более жестко определить свой стиль, чтобы он был таким, каким вы хотите его видеть на всех устройствах, если вы не хотите, чтобы он выглядел так, как его устанавливает устройство. Возможно, используйте некоторые 9 изображений патчей и xml-файлы селектора состояния. Поэтому, если вы устанавливаете фон на что-то вроде белого и не определяете какие-либо другие стили, он может наследоваться от Holo.Dark и использовать его в качестве текста редактирования bg: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/drawable-hdpi/textfield_default_holo_dark.9.png

Таким образом, нет видимого текста. Определите свой стиль более жестко или лучше установите свои темы и не переопределяйте другие фоны.

person Sleepybear    schedule 22.02.2012
comment
Я знаю, что мне нужно будет найти лучшее решение для ICS (сказал, что в обновлении) - хотя спасибо за ссылку. - person Nir Alfasi; 22.02.2012
comment
Не уверен, почему вы назначаете награду ... если вы просто получаете хороший фоновый 9-патч и определяете свой стиль, ваша проблема решена на всех текущих уровнях API. Вы даже можете украсть 9-й патч из ресурсов в GB Branch, если хотите. - person Sleepybear; 23.02.2012
comment
@Sleepybar, что такое GB Branch? Гитхаб? и вы правы, но я не уверен, как удалить награду, может быть, я должен просто присудить ее вам ... :) но серьезно, я бы предпочел найти ошибку и исправить ее, чем искать обходной путь. - person Nir Alfasi; 23.02.2012
comment
Ошибка, которую нужно исправить, заключается в том, что вы устанавливаете белый фон вместо использования полной темы OS/Rom. Ветка GB — это ветка Gingerbread, вы можете получить к ней доступ на github. Найдите в frameworks_base/core/res/res ресурсы, которые они используют. Вы также можете просто предоставить свой собственный рисунок (возможно, 9 патчей) для фона. - person Sleepybear; 24.02.2012
comment
Спасибо! поскольку ICS ведет себя иначе, чем Gingerbread. Как вы думаете, мне следует менять дисплей в зависимости от ОС? - person Nir Alfasi; 24.02.2012
comment
Он не столько ведет себя по-другому, сколько по-разному оформлен. ICS намеренно оставляет границы за пределами EditTexts. Вы должны либо предоставить свой собственный ресурс для рисования, либо исправить макет, чтобы он был совместим с обоими стилями ОС. (Как я неоднократно упоминал) - person Sleepybear; 25.02.2012
comment
Я знаю, что не опубликовал следующую дополнительную мелкую деталь: но в ICS исчезли не только границы (на что вы дали хорошее объяснение), но и перестала работать кнопка отправки. Я надеялся, что проблемы связаны, но теперь я больше не уверен. еще раз спасибо. - person Nir Alfasi; 26.02.2012

попробуйте использовать селектор Android

 <?xml version="1.0" encoding="utf-8"?>

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/editbox_dropdown_background"  android:state_focused="false"/>
  <item android:drawable="@drawable/editbox_background_focus_yellow"  android:state_focused="true"/>
  />
</selector>
person rinkesh    schedule 15.01.2014