Android EditText焦点在ScreenSlidePageAdapter内的片段内

Android EditText焦点在ScreenSlidePageAdapter内的片段内,android,keyboard,focus,fragment,fragmentstatepageradapter,Android,Keyboard,Focus,Fragment,Fragmentstatepageradapter,[使用支持库] 当尝试在myScreen SlidePagerAdapter中的片段内使用编辑文本时,其中多个片段同时可见 列表中的第二个片段包含一个编辑文本。在安卓4.1和4.2上运行良好。在Android 2.3.6(不知道其他版本)上,点击EditText将打开屏幕键盘,但不会聚焦EditText。如果我在ScreenSlidePagerAdapter中拖动片段被视为“当前”,则编辑文本将正常运行 固定布局是不可接受的,因为所有内容都必须动态生成,可见的片段的数量可以根据不同的标准而变化

[使用支持库]

当尝试在my
Screen SlidePagerAdapter
中的
片段内使用
编辑文本时,其中多个
片段同时可见

列表中的第二个
片段
包含一个
编辑文本
。在安卓4.1和4.2上运行良好。在Android 2.3.6(不知道其他版本)上,点击
EditText
将打开屏幕键盘,但不会聚焦
EditText
。如果我在
ScreenSlidePagerAdapter
中拖动
片段
被视为“当前”,则
编辑文本
将正常运行

固定布局是不可接受的,因为所有内容都必须动态生成,可见的
片段的数量可以根据不同的标准而变化

关于如何让它在没有硬编码的情况下正确运行,有什么想法吗?

if (v == tv)
我之前的评论需要关注焦点

if (v == tv && hasFocus)
完整代码:

if (v == tv && hasFocus) {
    ((LobbyAct)ChatFragment.this.getActivity()).pager.setCurrentItem(1);
    InputMethodManager inputMgr = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    inputMgr.toggleSoftInput(0, 0);
}

我尝试了以下方法:public void onFocusChange(View v,boolean hasFocus){if(v==tv){((LobbyAct)ChatFragment.this.getActivity()).pager.setCurrentItem(1);InputMethodManager inputMgr=(InputMethodManager)getActivity().getSystemService(Context.INPUT_方法_服务);inputMgr.toggleSoftInput(0,0);})这主要是有效的。但在发生其他事件(如按下按钮)时失败。