Подтвердить что ты не робот

Ошибка раздувания TextInputLayout при использовании с ViewPager

Похож, что TextInputLayout просто не работает внутри ViewPager.

Ошибка:

Ошибка раздувания класса android.support.design.widget.TextInputLayout

Appcompat и Design library. Theme верен.

Я использую PageAdapter для раздувания и заполнения ViewPager.

Вид TextInputLayout раздувается только отлично во всех остальных частях приложения.

layout Я надуваю для ViewPager.

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

  <android.support.design.widget.TextInputLayout
    android:id="@+id/text_input_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
      android:id="@+id/edit_text"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:hint="My Edit Text" />

  </android.support.design.widget.TextInputLayout>

</LinearLayout>
4b9b3361

Ответ 1

Я пробовал, и я мог работать как обычно (без исключения) Я использовал viewpager и пользовательский адаптер. что мой

activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</RelativeLayout>

и мой макет фрагмента (я использовал RelativeLayout, потому что я буду использовать фрагмент)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

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

        <android.support.design.widget.TextInputLayout
            android:id="@+id/text_input_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/edit_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="My Edit Text" />

        </android.support.design.widget.TextInputLayout>

    </LinearLayout>

</RelativeLayout>

Также вы знаете, как использовать адаптер viewpager. если вы не знаете, вы можете совершить здесь.

Ответ 2

Используйте этот

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppCompat">

вы также должны расширить свой класс с помощью AppCompatActivity вместо Activity

Ответ 3

Вы должны попробовать несколько вещей, чтобы исправить эту проблему.

  • расширить свою активность из AppCompatActivity
  • расширьте фрагмент (диалог) из файла android.support.v4.app.Fragment.
  • используйте последнюю версию библиотеки дизайна.
  • Вместо использования EditText используйте android.support.v7.widget.AppCompatEditText. Например:

        <android.support.design.widget.TextInputLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        app:errorEnabled="true">
    
                        <android.support.v7.widget.AppCompatEditText
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="First Name"
                            android:inputType="textPersonName"
                            android:singleLine="true" />
    
        </android.support.design.widget.TextInputLayout>
    

Ответ 4

У меня была такая же проблема, и ни один из вышеперечисленных решений не работал у меня. Наконец, я переключил PagerAdapter на FragmentStatePagerAdapter и реализовал все это с помощью фрагмента.

Вы можете обратиться к этой ссылке для справки.

В моем эксперименте я изменил демо и ввел TextInputLayout внутри него ViewPager, и все сработало отлично.