sno*_*yak 25 android android-softkeyboard android-fragments android-viewpager
我有一个带标签的ViewPager + ActionBar.当我"滑动"到另一个标签时,我想隐藏软键盘,但我无法弄清楚如何.
我已经将我的Activity传递给了FragmentPageAdapter的构造函数,所以我可以调用它
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)
但它没有做任何事情(并且它位于代码的可到达区域)...帮助?
alm*_*awi 41
在您的活动中,您可以执行以下操作:
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
final InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mView.getWindowToken(), 0);
}
@Override
public void onPageScrolled(int position, float offset, int offsetPixels) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
Run Code Online (Sandbox Code Playgroud)
Tim*_*mmm 32
我不使用,onPageSelected()
因为隐藏键盘动画螺丝与滑动动画.而是使用onPageScrollStateChanged()
:
@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)
一般的方法:
private void hideVirturalKeyboard(){
View v = getCurrentFocus();
if (v != null && v instanceof EditText) {
InputMethodManager mgr = (InputMethodManager)(v.getContext().getSystemService(Context.INPUT_METHOD_SERVIC
E));
mgr.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17239 次 |
最近记录: |