与ViewPager一起使用时出错TextInputLayout时出错

时间:2015-08-07 09:52:42

标签: android android-viewpager android-textinputlayout

看起来TextInputLayoutViewPager内部无效。

错误是:

  

错误类android.support.design.widget.TextInputLayout

AppcompatDesign 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>

4 个答案:

答案 0 :(得分:0)

我试过,我可以正常运行(也不例外) 我使用了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适配器。如果你不知道,你可以在这里提出要求。

答案 1 :(得分:0)

使用此

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

您还必须使用AppCompatActivity而不是Activity

来扩展您的类

答案 2 :(得分:0)

您应该尝试一些方法来解决问题。

  • 从AppCompatActivity扩展您的活动
  • 从android.support.v4.app.Fragment扩展您的(对话框)片段。
  • 使用最新版本的设计库。
  • 使用android.support.v7.widget.AppCompatEditText而不是使用EditText。例如:

        <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>
    

答案 3 :(得分:0)

我遇到了同样的问题,上述解决方案都没有对我有用。最后,我将 PagerAdapter 切换为 FragmentStatePagerAdapter ,并使用 Fragment 实现了整个事情。

您可以参考this link作为参考。

在我的实验中,我调整了演示并在 ViewPager 中插入了 TextInputLayout ,一切都运行良好。