TextInputLayout не отображается

#android #xml #material-design

#Android #xml #материал-дизайн

Вопрос:

Я совсем новичок в мире разработки приложений для Android. В настоящее время я пробую некоторые базовые вещи. В настоящее время я пытаюсь создать плавающую метку, подобную тем, которые можно увидеть в различных приложениях material design.

То, что я пытаюсь сделать, это получить CardView и поместить a TextInputLayout на эту карту.

 <android.support.v7.widget.CardView
        android:layout_width="310dp"
        android:layout_height="250dp"
        android:layout_below="@ id/textView"
        android:layout_alignRight="@ id/textView"
        android:layout_alignEnd="@ id/textView"
        android:layout_marginTop="13dp" >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText
                    android:id="@ id/labeltest"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:hint="floating label"/>
            </android.support.design.widget.TextInputLayout>
        </RelativeLayout>
    </android.support.v7.widget.CardView>
  

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

Я хотел бы добавить, что я тестирую его на виртуальной машине, а не на реальном устройстве.

Спасибо.

Пример 1

Редактировать: согласно запросу, colors.xml

 <resources>
    <color name="colorPrimary">#E43F3F</color>
    <color name="colorPrimaryDark">#E12929</color>
    <color name="primary_darker">#CC1D1D</color>
    <color name="colorAccent">#FFFFFF</color>

    <color name="black">#000000</color>
    <color name="jet">#222222</color>
    <color name="oil">#333333</color>
    <color name="monsoon">#777777</color>
    <color name="jumbo">#888888</color>
    <color name="aluminum">#999999</color>
    <color name="base">#AAAAAA</color>
    <color name="iron">#CCCCCC</color>
    <color name="white">#FFFFFF</color>
    <color name="Trans_text">#a8ffffff</color>
</resources>
  

Комментарии:

1. android:layout_height="wrap_content" в редактируемом тексте. В вашем текущем коде у родительского элемента есть wrap_content, а у дочернего — match_parent, которые отменяют друг друга равными 0, поэтому убедитесь, что у них есть правильные дочерние и родительские layout_params

2.И рекомендуется использовать TextInputEditText с TextInputLayout вместо простого EditText developer.android.com/reference/android/support/design/widget /…

3. @MohammedAtif только что попробовал android.support.design.widget.TextInputEditText . Когда я использую это, оно становится полностью невидимым и недоступным для нажатия

4. Не могли бы вы добавить, пожалуйста colors.xml , файл?

5. добавил @IulianPopescu

Ответ №1:

Если вы прочтете Руководство по дизайну материалов, вы обнаружите, что colorAccent используется в качестве цвета для строки под вашим полем. У вас colorAccent установлен белый цвет (см. colors.xml Файл) итак, я предполагаю, что TextInputLayout он смешивается с фоновым цветом parent , который также является белым или чем-то подобным. Попробуйте изменить colorAccent красный или что-то в этом роде, чтобы узнать, была ли это проблема.