在ViewPager中关闭键盘 [英] Closing keyboard in ViewPager

查看:76
本文介绍了在ViewPager中关闭键盘的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用ViewPager实现了三个选项卡.在右侧的选项卡布局中,当用户单击键盘时,我有一个编辑文本小部件.如果用户没有手动关闭键盘并滑动到中间或左侧选项卡,则键盘仍会保留在屏幕上.因此,如何避免在我不需要的其他两个选项卡中使用键盘.

I have implemented three tabs using ViewPager. In the right tab layout i have one edit text widget, when users click on it keyboard comes up. If the user don't close the keyboard manually and swipe to the middle or left tab the keyboard remains on screen. So how to avoid the keyboard in other two tabs where i don't need it.

这是我的代码.

    class ViewPagerActivity extends Activity   {



/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

            setContentView(R.layout.main);

    MyPagerAdapter adapter = new MyPagerAdapter();
    ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
    myPager.setAdapter(adapter);
    myPager.setCurrentItem(1);
    TitlePageIndicator titleIndicator = (TitlePageIndicator) findViewById(R.id.titles);
    titleIndicator.setViewPager(myPager);


      } }

第二个文件:MyPagerAdapter.java

Second File: MyPagerAdapter.java

  class MyPagerAdapter extends PagerAdapter implements OnClickListener,
    OnLongClickListener, AdapterView.OnItemSelectedListener {

public Object instantiateItem(View collection, int position) {

    LayoutInflater inflater = (LayoutInflater) collection.getContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    int resId = 0;
    View view;
    switch (position) {

    case 0:
        resId = R.layout.left;
        view = inflater.inflate(resId, null);
        break;
    case 1:


        resId = R.layout.main_c;

        view = inflater.inflate(resId, null);


        btn_no1 = (Button) view.findViewById(R.id.one);
        btn_no1.setOnClickListener(this);
                    ((ViewPager) collection).addView(view, 0);
        return view;
           case 2:
        resId = R.layout.right;

        view = inflater.inflate(resId, null);

        main_spinner = (Spinner) view.findViewById(R.id.spinner1);
        main_spinner.setOnItemSelectedListener(this);

        from_spinner = (Spinner) view.findViewById(R.id.spinner2);
        from_spinner.setOnItemSelectedListener(this);

        to_spinner = (Spinner) view.findViewById(R.id.spinner3);
        to_spinner.setOnItemSelectedListener(this);

        swap = (ImageButton) view.findViewById(R.id.swap_spinner);
        swap.setOnClickListener(this);
        ((ViewPager) collection).addView(view, 0);

        return view;


    }

    view = inflater.inflate(resId, null);

    ((ViewPager) collection).addView(view, 0);

    return view;
}

TitlePageIndicator看起来像这样: TitlePageIndicator

And TitlePageIndicator looks like this: TitlePageIndicator

推荐答案

在我看来,这不是一个严重的问题.用户打开键盘进行文本输入,并在不再需要时将其隐藏.

In my opinion this is not a serious problem. The user opens the keyboard for text input and will hide it when it's no longer needed.

具有对EditText对象的引用,这应该隐藏键盘:

Having a reference to your EditText object, this should hide the keyboard:

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0);

在离开右侧标签页时调用上面的代码段.

Call the snippet above when leaving the right tab.

这篇关于在ViewPager中关闭键盘的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆