【问题标题】:How to start with material design如何从材料设计开始
【发布时间】:2017-04-29 02:09:08
【问题描述】:

我正在尝试创建一个漂亮的布局,我找到了一个示例,但它不起作用:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_login"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="56dp"
    android:paddingLeft="24dp"
    android:paddingRight="24dp"
    tools:context=".LoginActivity"
    android:orientation="vertical">

    <ImageView
        android:src="@drawable/logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="24dp"/>

    <!-- Email Label -->
    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress"
            android:id="@+id/et_email"
            android:hint="@string/email_str" />
    </android.support.design.widget.TextInputLayout>

    <!-- Password Label -->
    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:id="@+id/et_contraseña"
            android:hint="@string/contraseña_str" />
    </android.support.design.widget.TextInputLayout>



    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <android.support.v7.widget.AppCompatButton
            android:id="@+id/but_iniciar_sesion"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:layout_marginBottom="24dp"
            android:padding="12dp"
            android:text="@string/iniciar_sesion_str"/>

        <android.support.v7.widget.AppCompatButton
            android:id="@+id/but_crear_cuenta"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:layout_marginBottom="24dp"
            android:padding="12dp"
            android:text="@string/crear_cuenta_str"/>

    </LinearLayout>

</LinearLayout>

它给我这个消息错误:

android.view.InflateException: Binary XML file line #21: Binary XML file line #21: Error inflating class android.support.design.widget.TextInputLayout

当然,我必须导入一个库或类似的东西。 也许在 gradle 或 AndroidManifest.xml 中添加一些行

有人知道怎么做吗?

【问题讨论】:

    标签: android layout material-design android-textinputlayout


    【解决方案1】:

    尝试将此依赖项添加到本地 gradle

    dependencies {
        compile "com.android.support:appcompat-v7:25.1.0"
        compile "com.android.support:design:25.1.0"
    }
    

    否则,如果您遇到“充气错误..”的问题,请尝试清理并重建项目。 附言使用这些布局的 Activity 应该扩展 AppCompatActivity 而不是 Activity

    【讨论】:

    • 我做到了,但仍然收到相同的错误消息。还是谢谢!
    • @Sergio 嗯,我在 android:id 和 android:hint 中看到一个有趣的符号,尝试重命名它们
    【解决方案2】:

    除了上面关于添加依赖项的答案外,我相信您还必须使用以下方法在 TextInputLayouts 上设置主题:

    android:theme="@style/Theme.AppCompat"
    

    这是使用您的代码的示例:

    <!-- Email Label -->
    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp"
        android:theme="@style/Theme.AppCompat">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress"
            android:id="@+id/et_email"
            android:hint="@string/email_str" />
    </android.support.design.widget.TextInputLayout>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 2015-05-19
      相关资源
      最近更新 更多