android - <include> 标签内 EditText 的奇怪行为

标签 android android-layout

我有一个 View ,其中包含另一个带有“include”组件的 View (参见 http://android-developers.blogspot.com/2009/02/android-layout-tricks-2-reusing-layouts.html)
包含的 View 中有一些 EditText。

这些 EditText 有一些问题:

  • 我必须点击它们 2 次才能显示键盘
  • 如果我长按其中一个 EditText,应用程序会卡住并崩溃(仅在我的手机 - Samsung galaxy S 上,而不是在模拟器上)

如果 Edittext 不在 <include> 中,则不会发生这种情况标签 ...
你对这个问题有什么想法吗??

问候, 克里斯托夫

最佳答案

我有同样的问题,关于在 Android 4.0 以上的三星设备上长按 EditText 或 TextView 崩溃。

这里是崩溃日志

java.lang.ArithmeticException: divide by zero
at android.widget.TextView$SelectionActionModeCallback.onCreateActionMode(TextView.java:10647)
at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionMode(PhoneWindow.java:2382)
at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionModeForChild(PhoneWindow.java:2322)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.View.startActionMode(View.java:3687)
at android.widget.TextView.startSelectionActionMode(TextView.java:10451)
at android.widget.TextView.performLongClick(TextView.java:9570)
at android.view.View$CheckForLongPress.run(View.java:14241)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4507)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
@Dumpstate > dumpstate -k -t -n -z -d -o /data/log/dumpstate_app_error

这是因为当你长按文字时,三星系统会选择文字高亮显示 并使用 onCreateActionMode() 来显示剪切、复制、粘贴等按钮。

如果你是Android 4.0以上, 它将显示在 ActionBar 上,并在您的应用程序的 style.xml 中使用 ActionBar 主题样式。 我找到了我的

"@android:style/Widget.Holo.ActionButton"

将 minWidth 设置为零, 导致三星系统计算操作按钮位置结果

java.lang.ArithmeticException: divide by zero

最后设置minWidth不为0,问题解决。

关于android - <include> 标签内 EditText 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731412/

相关文章:

java - Android:RecyclerView 空指针异常

Android模拟器不会挂载SD卡

android - flutter : "Could not resolve all artifacts for configuration ':类路径'“

android - 图像离开屏幕的 GridLayout

java - getIntent().getByteArrayExtra() 返回 null

android - 如何在 Jetpack Compose 中获取 onTouchEvent?

安卓工作室 : Issue with navigation xml editing and design view

android - 使用 WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY 将 View 添加到窗口时,它没有获取触摸事件

android - ViewPager setCurrentItem(pageId, true) 不平滑滚动

java - 从 Activity 中打开 fragment 并膨胀 View