Как настроить фокус на TextView при запуске Activity?
В моей работе есть EditText и TextView. Я хочу сосредоточиться на TextView при запуске Activity. Я использовал следующий код:
TextView myTextView = (TextView) findViewById(R.id.my_text_vew);
myTextView.setFocusable(true);
myTextView.setOnClickListener(this);
myTextView.requestFocus();
Но код не работает. EditText всегда получает фокус, когда начинается действие.
Может ли кто-нибудь помочь?
Спасибо.
Ответы
Ответ 1
Это ожидается при запуске Activity с помощью сенсорного экрана. Когда в режиме "касания", только пара представлений (EditText и ListView) может получить фокус. Если вы запустите приложение с помощью трекбола, вы увидите, что основное внимание уделяется TextView. То, что вы видите, это правильный и ожидаемый результат.
Ответ 2
Теперь я столкнулся с вашим вопросом. Может быть, через 2 года вы нашли решение. Но я пишу это здесь для других, которые будут встречаться с этим в будущем. Единственное, что вам нужно сделать, это перейти к AndroidManifest.xml
, найти Activity
, в котором вы хотите это поведение, и добавить этот android:windowSoftInputMode="stateHidden"
. Итак, в начале вашей Activity
клавиатура не будет отображаться, пока вы не коснетесь объекта EditText
.
Ответ 3
Если кто-то все еще задается вопросом, вы можете использовать следующее в своем макете xml, чтобы сделать текстовое отображение ориентированным в касании:
android:focusableInTouchMode="true"
Ответ 4
Чтобы запросить фокус на TextView, вам нужно установить focusable="true"
и focusableInTouchMode="true"
следующим образом:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Heading"
android:textSize="20sp"
android:textStyle="bold"
android:focusable="true"
android:focusableInTouchMode="true">
<requestFocus />
</TextView>
Ответ 5
Добавить свойство TextView в макете
android:focusable="false"
Это работает для меня.
Ответ 6
Используйте это:
EditText mEditText = (EditText) findViewById(R.id.edit_text);
TextView myTextView = (TextView) findViewById(R.id.my_text_vew);
mEditText.setFocusable(false);
myTextView.setFocusable(true);
Это снимает фокус с EditText и помещает его в TextView.
Ответ 7
Вы можете установить фокус на любой виджет или TextView из xml активности. Просто добавьте requestFocus до конца TextView.
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView2"
android:layout_width="470dp"
android:layout_height="wrap_content"
android:layout_marginStart="90dp"
android:layout_toEndOf="@+id/textView2"
android:ems="10"
android:textColor="#455A64"
android:textColorHint="#455A64"
android:textSize="27sp">
<requestFocus />
</AutoCompleteTextView>