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

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

Ошибка:

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

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

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

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

layout я ViewPager для 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> 

Я пробовал, и я мог работать как обычно (без исключения). Я использовал 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. Если вы не знаете, вы можете совершить здесь.

Использовать это

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

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

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

  • Расширьте свою активность из 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> 

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

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

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