2011-10-11 80 views
3

我有一个视图,其包括另一个与所述“包括”组分(见http://android-developers.blogspot.com/2009/02/android-layout-tricks-2-reusing-layouts.html
有附带的视图内的一些的EditText。用的EditText奇怪的行为内部<include>标签

有一些问题,这些EditText上:

  • 我要挖掘他们的2倍,才能有出现
  • 键盘,如果我长按的EditText应用程序冻结和崩溃的一个(只有在我的手机 - 三星Galaxy S,而不是在模拟器上)

如果EDITTEXT是不是在<include>标签它不会发生...
你对这个问题的任何想法?

问候, 克里斯托夫

+0

你是否有机会在同一个XML文件中包含相同的布局两次(具有相同ID的两个EditTexts)? – Maximus

+0

我只是检查,ID是唯一的,布局只包括一次。 –

+0

发布你的xml的*包括*和*包括*布局 – Merlin

回答

16

我对长按的EditText TextView的或崩溃三星设备上的Android 4.0了同样的问题。

崩溃日志在这里

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

同样的问题在这里,你可以如何设置minWidth为零? –

+0

它工作正常。谢谢丹尼尔。 – user1182217

+0

很棒的发现。谢谢 – Eduard

2

我想评论下面给出的答案(https://stackoverflow.com/a/11966733/1777346),但是没有足够的声望点呢!我们在三星设备上也遇到了相同的“java.lang.ArithmeticException:除零”异常(没有测试其他设备..所有三星)。在EditText字段中长按现有文本时会发生这种情况。

下面的解决方案工作..我们有以下样式定义。将minWidth更改为“1”已修复此问题。

<style name="ActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton"> 
    <item name="android:minWidth">0dp</item> 
+0

这个回答告诉我确切的地方,thx很多。 –