簡體   English   中英

Android Material TextInputLayout Style OutlinedBox 不工作

[英]Android Material TextInputLayout Style OutlinedBox Not Working

我使用帶有樣式 OutlinedBox 的 Material TextInputLayout

@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox

當啟動模擬器“不幸已停止”時,它不起作用。

implementation 'com.google.android.material:material:1.2.0'



<com.google.android.material.textfield.TextInputLayout
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="15dp"
    android:paddingRight="15dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Username"
        android:inputType="text" />

</com.google.android.material.textfield.TextInputLayout>

錯誤運行活動日志

E/AndroidRuntime:致命異常:主進程:com.mcic.drawer,PID:8832 java.lang.RuntimeException:無法啟動活動 ComponentInfo{com.mcic.drawer/com.mcic.drawer.MainActivity}:android.view。 InflateException:二進制 XML 文件第 19 行:在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 的 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java) 處充氣類 com.google.android.material.textfield.TextInputLayout 時出錯:2387) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) ) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(Native Method) 在 java.lang。 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 處的reflect.Method.invoke(Method.java:372) com.android.internal.os.ZygoteInit.m ain(ZygoteInit.java:698) 由:android.view.InflateException:二進制 XML 文件第 19 行:錯誤在 android.view.LayoutInflater.createView(LayoutInflater.java) 處充氣類 com.google.android.material.textfield.TextInputLayout :633) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:504) 在 android .view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) at androidx.appcompat app.AppCompatActivity.setContentView(AppCompatActivity.java:170) at com.mcic.drawer.MainActivity.onCreate(MainActivity.kt:9) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation .callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(Ac tivityThread.java:2278) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread. java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) ) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 引起:java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.reflect .Constructor.newInstance(Constructor.java:288) 在 android.view.LayoutInflater.createView(LayoutInflater.java:607) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 在 android.view.La youtInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater) .java:365) 在 androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) 在 androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170) 在 com.mcic.drawer.MainActivity.onCreate( MainActivity.kt:9) 在 android.app.Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) ) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在 android.app.ActivityThread.access$800(ActivityThread.java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Loope r.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke( Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 由:java .lang.IllegalArgumentException:此組件上的樣式要求您的應用主題為 Theme.MaterialComponents(或后代)。 在 com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:248) 在 com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:222) 在 com.google.android.material .internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:150) 在 com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes(ThemeEnforcement.java:120) 在 com.google.android.material.textfield.TextInputLayout.(TextInputLayout. java:424) at com.google.android.material.textfield.TextInputLayout.(TextInputLayout.java:396) at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor .java:288) 在 android.view.LayoutInflater.createView(LayoutInflater.java:607) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:806)在 android.view.LayoutInflater.inflate(LayoutInflater.java:504) 在 android.vi ew.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) at appx.appcompat. .AppCompatActivity.setContentView(AppCompatActivity.java:170) 在 com.mcic.drawer.MainActivity.onCreate(MainActivity.kt:9) 在 android.app.Activity.performCreate(Activity.java:5990) 在 android.app.Instrumentation。 callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread. java:151) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) ) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(Nati ve Method) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 在 com.android.internal.os。 ZygoteInit.main(ZygoteInit.java:698)

如果查看運行輸出,您將看到:

此組件上的樣式要求您的應用主題為 Theme.MaterialComponents

所以我們可以改變從Theme.MaterialComponents繼承的應用主題:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge">

詳細解釋在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM