Дать начальную ориентацию доступности для представления в фрагменте в макете [дубликат]

Я решил эту проблему со следующим кодом.

$catArray=array();                          

$catIds=explode(',',$member['cat_id']);
if(!empty($catIds[0])){
foreach($catIds as $cat_id){
$catDetail=$this->Front_Category->get_category_detail($cat_id);
$catArray[]=$catDetail['allData']['cat_title'];
}
echo implode(',',$catArray);
}
76
задан stealthcopter 30 April 2010 в 10:31
поделиться

7 ответов

Вы можете использовать тег requestFocus:

<Button ...>
  <requestFocus />
</Button>

Я считаю это странным, хотя он автоматически фокусирует одну из ваших кнопок, я не наблюдал этого поведения ни в одном из моих представлений.

145
ответ дан Matthias 21 August 2018 в 21:33
поделиться
  • 1
    Да, это случилось с двумя моими приложениями. Думаю, я мог бы запроситьFocus на элемент, который не изменяется, как TextView, или это не будет разрешено? – stealthcopter 30 April 2010 в 11:58
  • 2
    Я считаю, что он будет работать на любом представлении, которое можно сфокусировать. – Matthias 30 April 2010 в 16:49
  • 3
    @stealthcopter: можете ли вы сказать, какую версию Android вы используете. Я использую 2.1 & amp; 2.2, но requestFocus не работает. – anticafe 5 March 2011 в 16:00
  • 4
    Я пробовал XML-подход, я пробовал программный подход. Тем не менее EditText сохраняет фокус. ОЧЕНЬ НАДОЕДЛИВЫЙ ! – Someone Somewhere 25 July 2011 в 22:34
  • 5
    & lt; requestFocus / & gt; находится здесь: developer.android.com/guide/topics/resources/… – Erik B 27 April 2012 в 21:43

Установите для обоих :focusable и :focusableInTouchMode значение true и вызовите requestFocus. Это трюк.

21
ответ дан Anders R. Bystrup 21 August 2018 в 21:33
поделиться
  • 1
    наконец-то нашел это решение, спасибо – unruledboy 14 August 2013 в 01:14
  • 2
    Да, это истинное решение для его исправления. Спасибо Андерсу – GkhnSr 27 September 2013 в 13:57
  • 3
    Все еще не работает, когда есть EditText. – m0skit0 12 June 2015 в 14:50

Я нашел, что это сработало лучше для меня.

В AndroidManifest.xml <activity> element add android:windowSoftInputMode="stateHidden"

Это всегда скрывает клавиатуру при вводе активности.

17
ответ дан James 21 August 2018 в 21:33
поделиться

Используйте код ниже,

TableRow _tableRow =(TableRow)findViewById(R.id.tableRowMainBody);
tableRow.requestFocus();

, который должен работать.

6
ответ дан jcw 21 August 2018 в 21:33
поделиться

Я просто добавляю эту строку кода в onCreate():

this.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Проблема решена.

11
ответ дан Perception 21 August 2018 в 21:33
поделиться

@Someone Где-то я пробовал все вышеперечисленное безрезультатно. Исправление, которое я нашел, это 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>
54
ответ дан Raju-san 21 August 2018 в 21:33
поделиться
  • 1
    Мне удалось сосредоточиться на AlertDialog, и включение focusableintouchmode помогло мне понять это правильно. По существу, вот как: alert.show (); alert.getButton (AlertDialog.BUTTON_POSITIVE) .setFocusableInTouchMode (истина); alert.getButton (AlertDialog.BUTTON_NEGATIVE) .requestFocus (); – Sagar Hatekar 19 January 2012 в 17:30
  • 2
    Спасибо! Это было только решение , которое работало в моем случае. Хотя я использовал его несколько иначе; Я помещал фокус в файл RelativeLayout, содержащий EditText. – kaka 27 September 2012 в 13:49
  • 3
    С Android P следующие изменения приходят на платформу: «Обзор с областью 0 (ширина или высота - 0) больше не настраивается. Кроме того, действия больше не подразумевают первоначальный фокус в сенсорном режиме. Вместо этого вам необходимо явно запросить первоначальный фокус, если это необходимо. & Quot; – AustrianDude 4 July 2018 в 15:29

@Someone Где-то я использовал это, чтобы очистить фокус:

editText.clearFocus();

и помогает

3
ответ дан Ruobin Wang 21 August 2018 в 21:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: