ppr*_*dos 5 android focus android-softkeyboard android-viewpager
我使用带有3个片段的ViewPager.第一个只有文字.第二个是输入字段.第三,只有文字.
初始化ViewPager时,将显示软键盘,因为焦点设置为输入字段.如果我改变片段的顺序,则不显示软键盘.
如何使用ViewPager控制焦点和软键盘?
问候
到目前为止,我发现的最佳解决方案是android:windowSoftInputMode="stateHidden"在您的活动清单中使用,然后将其添加到您的活动中.
@Override
public void onPageScrollStateChanged(int state)
{
if (state == ViewPager.SCROLL_STATE_IDLE)
{
if (mViewPager.getCurrentItem() == 0)
{
// Hide the keyboard.
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(mViewPager.getWindowToken(), 0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我没有使用,onPageSelected()因为隐藏键盘动画螺丝与滑动动画.我没有使用这个android:focusable技巧,因为当您向后滑动到无输入片段时,键盘不会被隐藏.虽然我想你可以将它与上面的代码结合起来.
我确信有更好的方法来做到这一点,但我遇到了同样的问题,我通过将父级设置View为可聚焦来解决这个问题。这样,当您在页面之间滑动时,无论是什么原因导致软键盘弹出都不会获得焦点......
<!-- Dummy item to prevent your View from receiving focus -->
<LinearLayout
...
android:focusable="true"
android:focusableInTouchMode="true" />
<!-- The view(s) that are causing the keyboard to pop up each time you swipe -->
<EditText ... />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3469 次 |
| 最近记录: |