Em meu aplicativo Android, ele focaliza automaticamente o primeiro Buttonque tenho em meu layout, dando a ele um contorno laranja. Como posso definir o foco inicial, de preferência em XML, e isso pode ser definido como nada?
Em meu aplicativo Android, ele focaliza automaticamente o primeiro Buttonque tenho em meu layout, dando a ele um contorno laranja. Como posso definir o foco inicial, de preferência em XML, e isso pode ser definido como nada?
Respostas:
Você pode usar a requestFocustag:
<Button ...>
<requestFocus />
</Button>
Embora eu ache estranho que ele focalize automaticamente um de seus botões, não observei esse comportamento em nenhuma das minhas visualizações.
@Someone Somewhere, eu tentei todas as opções acima sem sucesso. A correção que encontrei é de http://www.helloandroid.com/tutorials/remove-autofocus-edittext-android . Basicamente, você precisa criar um layout invisível logo acima do botão problemático:
<LinearLayout android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px" >
<requestFocus />
</LinearLayout>
RelativeLayoutcontendo o EditText.
Defina :focusablee :focusableInTouchModecomo verdadeiro e chame requestFocus. Isso faz o truque.
Achei que funcionou melhor para mim.
Em AndroidManifest.xml, <activity> elementadicioneandroid:windowSoftInputMode="stateHidden"
Isso sempre oculta o teclado ao entrar na atividade.
Acabei de adicionar esta linha de código em onCreate():
this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Problema resolvido.
@Someone Somewhere eu usei isso para clarear o foco:
editText.clearFocus();
e isso ajuda