У моїй програмі для 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();
і це допомагає