У моїй програмі для Android він автоматично фокусує перше, Button
що є в моєму макеті, надаючи йому помаранчевий контур. Як я можу встановити початковий фокус бажано в XML, і чи не можна встановити для цього значення нічого?
У моїй програмі для Android він автоматично фокусує перше, Button
що є в моєму макеті, надаючи йому помаранчевий контур. Як я можу встановити початковий фокус бажано в XML, і чи не можна встановити для цього значення нічого?
Відповіді:
Ви можете використовувати requestFocus
тег:
<Button ...>
<requestFocus />
</Button>
Мені здається дивним, що він автоматично фокусує одну з ваших кнопок, я не спостерігав такої поведінки в жодному зі своїх поглядів.
@ Хтось десь, я спробував усе вищезазначене безрезультатно. Я знайшов виправлення на веб-сайті http://www.helloandroid.com/tutorials/remove-autofocus-edittext-android . В основному, вам потрібно створити невидимий макет трохи вище проблемної кнопки:
<LinearLayout android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px" >
<requestFocus />
</LinearLayout>
RelativeLayout
вміщуючий файл EditText
.
Встановіть обидва значення :focusable
і :focusableInTouchMode
на true і викликайте requestFocus
. Це робить трюк.
Я виявив, що це найкраще для мене працює.
В AndroidManifest.xml <activity> element
додатиandroid:windowSoftInputMode="stateHidden"
Це завжди приховує клавіатуру під час введення дії.
Я просто додаю цей рядок коду в onCreate()
:
this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Проблема вирішена.
@ Хтось десь я використовував це, щоб очистити фокус:
editText.clearFocus();
і це допомагає