Pergunta

Usando o Android, aqui faz parte de um arquivo XML de layout:

<LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="vertical"
   android:textColor="#191919">

      <TextView android:id="@+id/someTextField"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1" 
          android:textStyle="bold" />

      <TextView android:id="@+id/anotherTextField"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1" />

</LinearLayout>

Estou adicionando esta visualização (em tempo de execução) a um ViewAnimator assim:

ViewAnimator viewAnimator = (ViewAnimator)findViewById(R.id.viewAnimator);
View newView = View.inflate(this, R.layout.new_view, null);
viewAnimator.addView(newView);
viewAnimator.showNext();

String newValue = "new value for the text field";
findViewById(R.id.deal_view).setVisibility(View.VISIBLE);
TextView someTextField = (TextView)findViewById(R.id.someTextField);
someTextField.setText(newValue); 

Isso parece estar funcionando bem, mas quando newValue é longo o suficiente para levar mais de uma linha de texto no layout, estou recebendo um acidente:

09-06 21:36:48.208: ERROR/AndroidRuntime(6561): Uncaught handler: thread main exiting due to uncaught exception
09-06 21:36:48.248: ERROR/AndroidRuntime(6561): java.lang.StackOverflowError
09-06 21:36:48.248: ERROR/AndroidRuntime(6561):     at android.view.ViewGroup.drawChild(ViewGroup.java:1486)
09-06 21:36:48.248: ERROR/AndroidRuntime(6561):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
(many more lines like this)

É uma informação suficiente para ver o que eu posso estar fazendo de errado? Funciona perfeitamente bem quando newValue é curto o suficiente para uma linha. Eu pensei em tentar um TableLayout Mas parece que isso é exatamente o que um LinearLayout é bom para.

Foi útil?

Solução

Obrigado pela ajuda nos comentários. Acabei seguindo o conselho aqui (soltando diretamente o ViewAnimator e usando o ViewFlipper). Melhor aplicativo, mas ainda o mesmo problema. Deixei um nível de contêineres linearlayout e ele começou a funcionar bem.

Suponho que o Bhatt4982 esteja certo, a profundidade da interface do usuário era muito grande.

Bhatt4982, poste seu comentário como uma resposta para obter crédito por isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top