2010-11-01 151 views
2

我第一次關注edittext視圖時,我注意到我可以在文本框中寫任何東西之前有一兩秒的滯後。編輯文本「lag」android

即使在沒有任何代碼的應用程序中,我注意到這種行爲比初始化應用程序更需要什麼。

我在做什麼錯了?

+0

你安裝了那個效果文本編輯的應用程序?如自定義鍵盤? – methodin 2010-11-01 15:35:03

+0

你在調試嗎?在調試模式下執行應用程序會給仿真器的響應時間增加一個非常明顯的延遲 – Andrew 2010-11-01 15:49:42

回答

0

您是否在使用模擬器?

這是常見的,當你使用模擬器,無論調試模式或不......至少從我(有限)的經驗到目前爲止。試試真正的手機上的應用程序,看看會發生什麼。

+0

不使用模擬器,感謝您試圖提供幫助! :) – Alexander 2010-11-01 17:30:54

0

我關閉了USB調試並卸載了幾個鍵盤。似乎現在工作正常。謝謝大家。

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中,並將動態佈局控件交給LinearLayo UT。 這是一個了不起的瞬間改進。

+0

非常感謝,這解決了我的問題! – Mico 2013-11-22 08:30:42

+0

解決方案真的有效...另一個例子將在https://www.codeofaninja。com/2013/11/solve-android-edittext-lag.html – Thilek 2015-06-17 13:31:36

+0

你是如何使用ddms查看關於重畫和RelativeLayout的所有信息的? – 2015-10-19 15:48:55

0

編輯AndroidManifest:

我的舊代碼

< uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> 

我的新代碼

< uses-sdk android:minSdkVersion="8" /> 

我只是刪除了targetSdkVersion和滯後走了。

0

在我的情況下,症狀是相同的,延遲發生的鍵盤和輸入字母逐漸出現。 解決方案是因爲我在RelativeLayout中放置了背景圖片,當我做了一個測試後,解決了背景並停止了延遲,因此我進入了一個在線網站,可以減少照片,然後從93kb減少到50kb,並且完美地工作。