第一次关注edittext视图时,我发现在我可以在文本框中写入任何内容之前会有一两秒的延迟。
我注意到这种行为甚至在没有任何代码的应用程序上,而不是初始化应用程序的nessecary。
我做错了什么?
答案 0 :(得分:6)
我已经立即为我解决了这个问题;我在DDMS中看到,在输入文本时发生了大量的重绘和重新计算,并且调用了很多关于RelativeLayouts的信息。所以,我检查了我的布局;我有一些Multi-Line EditText是RelativeLayout的直接子项。所以,我把它们包装成一个线性布局,并在LinearLayout指定我想要的宽度/高度,而不是每个EditText。
猜猜是什么?它完全修好了!!(下面,一些代码......请记住,这只是一个近似值。不要尝试复制/粘贴)
<强> BEFORE:强>
<RelativeLayout>
<EditText
android:layout_width="wrap_content" />
<EditText
android:layout_width="wrap_content" />
</RelativeLayout>
<强> AFTER:强>
<RelativeLayout>
<LinearLayout
android:layout_width="wrap_content" >
<EditText
android:layout_width="fill_parent" />
<EditText
android:layout_width="fill_parent" />
</LinearLayout>
</RelativeLayout>
将EditText包装成LinearLayout,并将动态布局控件放弃到LinearLayout。 这是一个惊人的,即时的改进。
答案 1 :(得分:0)
您使用的是模拟器吗?
这种情况在您使用模拟器时很常见,无论调试模式如何......至少从我(有限)的经验到目前为止。在真实手机上试用你的应用程序,看看会发生什么。
答案 2 :(得分:0)
我关闭了USB调试并卸载了一些键盘。好像现在工作正常。谢谢大家。
答案 3 :(得分:0)
编辑AndroidManifest:
我的旧代码
< uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" />
我的新代码
< uses-sdk android:minSdkVersion="8" />
我刚删除了targetSdkVersion并且延迟消失了。
答案 4 :(得分:0)
在我的情况下,症状是相同的,出现键盘时出现延迟,并且在键入字母时逐渐出现。 解决方案是因为我在RelativeLayout中放置了一个背景图像,当我做了一个测试,考虑到后台工作并停止延迟,所以我进入了一个在线网站,减少了照片,然后从93kb减少到50kb并且工作得很好。 / p>
答案 5 :(得分:0)
在我的情况下,问题是XML上的活动(作为对话框)的 background-drawable ,它太重了。更改它,效果很好。
答案 6 :(得分:0)
在我的情况下,滞后是因为我曾经在应用程序的活动的Intent putExtra()
中传递大量的序列化对象。这些将继续留在内存中并引起问题。