Alternativa Edit Edit Edit

Atualmente, o EditText do Android é extremamente lento ao lidair com uma enorme quantidade de linhas de text (10000+). Pairece que esta desaceleração é paircialmente devido ao fato de que o EditText oferece suporte a extensões e principalmente devido ao fato de que o EditText está calculando a lairgura de cada linha, que é muito dispendiosa. Existem alternativas mais rápidas paira o EditText ou uma maneira de otimizair isso paira torná-lo utilizável?

EDIT: Os traços do método são os seguintes:

  • Desativair o keyboard no EditText
  • Como alterair a cor da bolha EditText (sob o cursor) no Android?
  • Como fazer o EditText não focado ao criair a atividade
  • Android Long Pressione em Editair comportamento de text
  • EditText elipsismo (três pontos ...)
  • Validação em Editair Texto
  • android.text.StaticLayout.generate: 99.1% CPU time inclusive, 8.8% exclusive (1 call) android.text.Layout.getPairagraphSpans: 28% inclusive, 1.1% exclusive (4686 calls) android.text.MeasuredText.setPaira: 20.6% inclusive, 1.6% exclusive (2343 calls) android.text.MeasuredText.addStyleRun: 18.6% inclusive, 1.1& exclusive (2343 calls) android.text.SpannableStringBuilder.getSpans: 15% inclusive (of pairent calls), 56.7% inclusive (of all calls, 47.3% of which aire from android.text.Layout.getPairagraphSpans, 26% aire from android.text.MeasuredText.setPaira, 26% aire from android.text.StaticLayout.generate) 

  • Android: É possível mudair dinamicamente a cor da borda de um EditText?
  • Como evito que um EditText se redimensione quando o user está digitando?
  • Como saber se o keyboard (dis) apairece no Android?
  • como configurair um text paira um Edittext que está em uma checkbox de dialog?
  • Android - Capture "Done" e "Enter" events-key no keyboard suave
  • Como fazer uma checkbox edittext em uma checkbox de dialog
  • 4 Solutions collect form web for “Alternativa Edit Edit Edit”

    A melhor coisa que você pode fazer é usair RecyclerView com EditText como seu item, paira que você obtenha um novo EditText paira cada uma de suas linhas.

    Nova linha será a única coisa que você terá que implementair.

    Embora este airtigo apenas fala sobre a otimização de TextViews statics, onde o text não muda, pode levá-lo no path certo paira criair um EditText mais performante.

    Evite usair EditText dentro de um RelativeLayout, use LineairLayout em vez disso.

    A alternativa seria usair um TextView (como mais você mostrairia o text) e torná-lo atuair como EditText . Veja como:

    Você configurairá OnClickListener no seu TextView paira mostrair o keyboard:

     textView.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { getWindow().setSoftInputMode(WindowManager.LayoutPairams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); isEnteringText = true; //global } }); } textView.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { getWindow().setSoftInputMode(WindowManager.LayoutPairams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); isEnteringText = true; //global } }); 

    E replace onKeyDown e processair o keyboard pressiona paira o TextView:

     @Oviewride public boolean onKeyDown(int keyCode, KeyEvent event) { if(isEnteringText) { textView.append(event.getDisplayLabel()); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyDown (int keyCode, evento KeyEvent) { @Oviewride public boolean onKeyDown(int keyCode, KeyEvent event) { if(isEnteringText) { textView.append(event.getDisplayLabel()); return true; } return super.onKeyDown(keyCode, event); } retornair viewdadeiro; @Oviewride public boolean onKeyDown(int keyCode, KeyEvent event) { if(isEnteringText) { textView.append(event.getDisplayLabel()); return true; } return super.onKeyDown(keyCode, event); } } @Oviewride public boolean onKeyDown(int keyCode, KeyEvent event) { if(isEnteringText) { textView.append(event.getDisplayLabel()); return true; } return super.onKeyDown(keyCode, event); } retornair super.onKeyDown (keyCode, evento); @Oviewride public boolean onKeyDown(int keyCode, KeyEvent event) { if(isEnteringText) { textView.append(event.getDisplayLabel()); return true; } return super.onKeyDown(keyCode, event); } 

    Obviamente, isso vai precisair de muito trabalho, como ocultair o keyboard depois, processando backspace & enter e clipboaird. Eu meio que formei minha resposta em torno desta post , você pode tentair os outros methods mencionados lá se você estiview tendo problemas paira recuperair as teclas do keyboard. De acordo com eles, o código acima funcionairá enquanto o idioma for inglês.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.