現在、TabHost
4つのタブを含むがあります。一部のフラグメントではEditText
、レイアウト内に多数のビューがあります。
ハードウェア キーボードを使用していずれかのビューに入力しようとするとEditText
、 からフォーカスが奪われ、EditText
の現在アクティブなタブに移動することがわかりましたTabHost
。これは、タブのある画面でのみ発生します。これを解決するための迅速で簡単な方法はありますか?
現在、TabHost
4つのタブを含むがあります。一部のフラグメントではEditText
、レイアウト内に多数のビューがあります。
ハードウェア キーボードを使用していずれかのビューに入力しようとするとEditText
、 からフォーカスが奪われ、EditText
の現在アクティブなタブに移動することがわかりましたTabHost
。これは、タブのある画面でのみ発生します。これを解決するための迅速で簡単な方法はありますか?
これはかなり長い間既知のバグでした:
http://code.google.com/p/android/issues/detail?id=2516
回避策は、タブが選択された後に強制的にTabHost
フォーカスを失うことです。これを行うには、 に を設定し、OnTabChangeListener
メソッドTabHost
を呼び出します。clearFocus
onTabChanged
tabHost.setOnTabChangedListener(new OnTabChangeListener(){
public void onTabChanged(String tabID) {
tabHost.clearFocus();
}
});
編集: これが機能しない場合は、別の方法を試すことができます。代わりに EditText フィールドに強制的にフォーカスを当てる:
OnTouchListener focusHandler = new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
// TODO Auto-generated method stub
view.requestFocusFromTouch();
return false;
}
};
editText.setOnTouchListener(focusHandler); //For each EditText with this issue