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