<< Android-Note
タブ内で入力できないときの対処法
アプリのなかでタブとエディットテキストなどの文字入力するビューを組み合わせて使う場合にタブがエディットテキストのフォーカスを奪ってしまう場合があります。
例えば下の画像のようにあるタブにエディットテキストなどの文字入力するビューがあるとします。

この場合、エディットテキストに何か入力しようとすると次のようにタブの方にフォーカスが移ってしまいます。

これはAndroidのバグらしく、次のようにEditTextにOnTouchListenerを設定してあげることで解決できます。
public class MyFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState) { final View view = inflater.inflate(R.layout.tab1_fragment, container, false); final EditText edit_text = (EditText) view.findViewById(R.id.edit); OnTouchListener focus_listener = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { v.requestFocusFromTouch(); return false; } }; edit_text.setOnTouchListener(focus_listener); } }
requestFocusFromTouchメソッドをエディットテキストがタッチされたときに呼び出せばタブにはフォーカスが移らなくなり入力が可能になります。
関連項目
© Kaz