2015-07-06 4 views
0

У меня есть 2 проблемы с фокусом:EditText фокус

  1. если мой EditText сфокусирован и клавиатуры показано; и я нажимаю кнопку аппаратного возврата, клавиатура скрывается, но мой EditText по-прежнему сосредоточен (он все еще показывает мерцающий курсор).

  2. , когда я нажимаю actionbartoggle слева от EditText в моей панели инструментов, в то время как клавиатура видна и EditText сфокусирована, шкуры клавиатуры и EditText теряет фокус. Это правильно. Но когда я нажимаю Button (справа от моего EditText), пока отображается клавиатура, и у фокуса EditText ничего не происходит, кроме слушателя Button. Когда я кладу атрибуты focusableintouchmode=true и focusable=true на Button, клавиатура кожевенное и EditText теряет фокус, но слушатель больше не работает

    <android.support.v7.widget.Toolbar 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/toolbar" 
        style="@style/toolbarStyle" 
        android:layout_width="match_parent" 
        android:layout_height="@dimen/toolbarHeight" > 
    
        <RelativeLayout 
         android:id="@+id/focusHolder" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:focusable="true" 
         android:focusableInTouchMode="true" 
         android:layout_centerVertical="true" 
         > 
    
         <ImageButton 
          android:id="@+id/refreshBtn" 
          android:src="@drawable/refreshicon" 
          android:layout_width="48dp" 
          android:layout_height="match_parent" 
          android:layout_alignParentRight="true" 
          android:background="@null" /> 
    
         <EditText 
          android:id="@+id/addressBar" 
          android:layout_width="match_parent" 
          android:layout_height="30dp" 
          android:layout_toLeftOf="@id/refreshBtn" 
          android:singleLine="true" 
          android:imeOptions="actionGo" 
          android:layout_centerVertical="true" 
          android:drawableLeft="@drawable/searchicon" 
          android:drawablePadding="5dp" 
          style="@style/addressBarStyle"/> 
    
        </RelativeLayout> 
    </android.support.v7.widget.Toolbar> 
    
+0

Как вы говорите, у вас есть две проблемы, но один из них не проблема, он работает правильно, нажимая назад, вы просто скрываете клавиатуру, это не приводит к тому, что «EditText» теряют фокус. –

+0

Хорошо, как я могу заставить его потерять фокус? в Android-приложениях для акций это не так. – PrisonMike

+0

пишите событие нажатия клавиши для кнопки «Назад» и напишите логику der –

ответ

0

Попробуйте этот код ...

//hide a keyboard 
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

//remove edittext focus 
editText.setFocusableInTouchMode(false); 
editText.setFocusable(false); 
+0

thx, но не работает – PrisonMike

+0

@PrisonMike у вас есть решение для этого? –

+0

Ничего страшного было 2 года назад – PrisonMike

Смежные вопросы