3

我尝试使用 ConstraintLayout 中支持设计库中的 TextInputLayout,但出现错误:

android.widget.LinearLayout$LayoutParams 
cannot be cast to android.support.constraint.ConstraintLayout$LayoutParams

如何使用 ConstraintLayout 实现与 support.design.widget.TextInputLayout 相同的功能?

完整版面在这里: http: //pastebin.com/TjC0FAdS

问题是:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/constraintLayout">

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <AutoCompleteTextView
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:singleLine="true"
            android:id="@+id/email"
            android:hint="@string/prompt_email"
            app:layout_constraintLeft_toRightOf="@+id/imageView3"
            android:layout_marginStart="8dp"
            app:layout_constraintTop_toBottomOf="@+id/logo"
            android:layout_marginTop="16dp"
            app:layout_constraintRight_toRightOf="@+id/constraintLayout"
            android:layout_marginEnd="16dp" />
    </android.support.design.widget.TextInputLayout>
</android.support.constraint.ConstraintLayout>
4

2 回答 2

5

诸如app:layout_constraintLeft_toRightOf要求ConstraintLayout是父视图的属性。将这些属性移至TextInputLayout,它应该可以正常工作。

于 2016-06-21T16:23:03.537 回答
0

根据我的经验,阅读 Android 文档是很好的第一步。模拟器运行良好,但您确实希望从操作系统级别熟悉设计模式和交互。

如果您或您的公司有测试设备,我建议您使用 Android 手机几周。除了电话/短信之外,我都使用 Android。您将开始了解 iOS 和 Android 之间的细微差别。例如:使用 UIAlerts vs Toasts vs Dialogs

--

有关资源,请查看:google.com/design/spec & http://blog.mengto.com/how-to-design-for-android-devices/和 Medium 文章。

Android 的文档还可以,但最好的学习方式是与以前为 Android 设计过的设计师配对。即使只是为了了解 iOS 和 Android 之间的差异,您也会学到很多东西。

于 2016-09-11T19:29:20.837 回答