W mojej aplikacji na Androida automatycznie skupia się na pierwszej, Button
którą mam w swoim układzie, nadając jej pomarańczowy kontur. Jak mogę ustawić początkowy fokus najlepiej w XML i czy można to ustawić na zero?
W mojej aplikacji na Androida automatycznie skupia się na pierwszej, Button
którą mam w swoim układzie, nadając jej pomarańczowy kontur. Jak mogę ustawić początkowy fokus najlepiej w XML i czy można to ustawić na zero?
Odpowiedzi:
Możesz użyć requestFocus
tagu:
<Button ...>
<requestFocus />
</Button>
Wydaje mi się jednak dziwne, że automatycznie ustawia ostrość jednego z przycisków, nie zauważyłem tego zachowania w żadnym z moich widoków.
@Someone Somewhere, próbowałem wszystkich powyższych bezskutecznie. Znaleziona przeze mnie poprawka pochodzi z http://www.helloandroid.com/tutorials/remove-autofocus-edittext-android . Zasadniczo musisz utworzyć niewidoczny układ tuż nad problematycznym przyciskiem:
<LinearLayout android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px" >
<requestFocus />
</LinearLayout>
RelativeLayout
zawierającym EditText
.
Ustaw oba :focusable
i :focusableInTouchMode
na prawdę i zadzwoń requestFocus
. To załatwia sprawę.
Uważam, że to działa najlepiej dla mnie.
W AndroidManifest.xml <activity> element
dodajandroid:windowSoftInputMode="stateHidden"
Powoduje to zawsze ukrycie klawiatury podczas rozpoczynania działania.
Po prostu dodaję ten wiersz kodu do onCreate()
:
this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Problem rozwiązany.
@Someone Somewhere Użyłem tego do wyraźnego skupienia:
editText.clearFocus();
i to pomaga