![](/img/trans.png)
[英]TextInputLayout is not working when I set OutlinedBox in style
[英]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.