将工具栏文本更改为样式中的所有大写后,Android搜索小部件崩溃

时间:2018-06-02 15:46:56

标签: android android-layout indexoutofboundsexception

我的应用在其工具栏中显示了一个搜索小部件。 它通常工作正常,但如果我通过添加以下内容将文本更改为样式中的所有大写:

 <style name="toolbar_text parent="@style/ThemeOverlay.AppCompat.ActionBar">
 <item name="textAllCaps">true</item>
 <item name="android:textAllCaps">true</item>
 </style>

当我尝试使用搜索小部件文本字段时应用程序崩溃,但此处需要注意的一点是语音搜索工作正常以便如何解决此问题

这里是错误

E/ACRA: ACRA caught a IndexOutOfBoundsException for com.lalitesh.datenoteapp
                                     java.lang.IndexOutOfBoundsException
                                         at android.graphics.Paint.getRunAdvance(Paint.java:2557)
                                         at android.text.TextLine.handleText(TextLine.java:719)
                                         at android.text.TextLine.handleRun(TextLine.java:869)
                                         at android.text.TextLine.measureRun(TextLine.java:387)
                                         at android.text.TextLine.measure(TextLine.java:277)
                                         at android.text.Layout.getHorizontal(Layout.java:943)
                                         at android.text.Layout.getHorizontal(Layout.java:921)
                                         at android.text.Layout.getPrimaryHorizontal(Layout.java:892)
                                         at android.widget.TextView.bringPointIntoView(TextView.java:7544)
                                         at android.widget.TextView.updateAfterEdit(TextView.java:8261)
                                         at android.widget.Editor.finishBatchEdit(Editor.java:1460)
                                         at android.widget.Editor.endBatchEdit(Editor.java:1442)
                                         at android.widget.TextView.endBatchEdit(TextView.java:6675)
                                         at com.android.internal.widget.EditableInputConnection.endBatchEdit(EditableInputConnection.java:78)
                                         at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:478)
                                         at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:91)
                                         at android.os.Handler.dispatchMessage(Handler.java:102)
                                         at android.os.Looper.loop(Looper.java:154)
                                         at android.app.ActivityThread.main(ActivityThread.java:6123)
                                         at java.lang.reflect.Method.invoke(Native Method)
                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

1 个答案:

答案 0 :(得分:0)

您的问题与所有上限无关。

您缺少XML中name="toolbar_text"属性的结束双引号。

试试这个:

<style name="toolbar_text" parent="@style/ThemeOverlay.AppCompat.ActionBar">
   <item name="textAllCaps">true</item>
   <item name="android:textAllCaps">true</item>
</style>