Ошибка раздувания 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>
Ответы
Ответ 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, и все сработало отлично.