处理软键盘导航箭头 [英] Handling Soft Keyboard Navigation Arrows

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

问题描述

在这里,我正在使用ViewPager for Fragments,我使用了自定义视图分页器来控制导航. 这是课程,

Here i am using ViewPager for Fragments, i used custom view pager for controlling navigation. here is the class,

public class NonSwipeableViewPager extends ViewPager {

public NonSwipeableViewPager(Context context) {
    super(context);
    setMyScroller();
}

public NonSwipeableViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    setMyScroller();
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    // Never allow swiping to switch between pages
    return false;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    // Never allow swiping to switch between pages
    return false;
}

//down one is added for smooth scrolling

private void setMyScroller() {
    try {
        Class<?> viewpager = ViewPager.class;
        Field scroller = viewpager.getDeclaredField("mScroller");
        scroller.setAccessible(true);
        scroller.set(this, new MyScroller(getContext()));
    }catch (Exception e) {
        e.printStackTrace();
    }
}

public class MyScroller extends Scroller {
    public MyScroller(Context context) {
        super(context, new DecelerateInterpolator());
    }

    @Override
    public void startScroll(int startX, int startY, int dx, int dy, int duration) {
        super.startScroll(startX, startY, dx, dy, 350 /*1 secs*/);
    }
}

}

没有滑动和点击事件.但是我的问题是

There no Swipe and Click Events working. but what is my problem is

当我选择名字并点击我的平板电脑(三星)上的箭头按钮时,它会导航到中间名,然后到姓氏,在姓氏之后导航到下一个片段,即;我的视图寻呼机上的简介"选项卡. 这是我的问题,如何预防呢?

when i select FIRST NAME and click on the arrow button on my tablet (Samsung) it navigates to MIDDLE NAME then to LAST NAME, after LAST NAME it NAVIGATES TO THE NEXT FRAGMENT ie; INTRODUCTION tab on my view pager. this is my problem, how to prevent this?

我尝试的是,我设置了EditText属性nextFocusForward,并尝试了

what i tried is, i set EditText property nextFocusForward, and tried

 v.setFocusableInTouchMode(true); 
 v.requestFocus(); 
 v.setOnKeyListener(new View.OnKeyListener() { 
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        if (keyCode == KeyEvent.KEYCODE_NAVIGATE_NEXT) {
            return false; 
          } 
      } 
      return false; 
    } 
}); 

但是不好!
如何隐藏该软键?或如何控制动作? 问题只在于此键盘,(我的三星标签上的)手机上没有这样的键. 如何摆脱这个问题?

but no good!
how to hide that soft key ? or how to control the action? the problem is only with this keyboard,(on Samsung Tab) on my phone there is no keys like this. how to get rid of this problem?

推荐答案

我知道它为时已晚,但可能会对某人有所帮助.

I know its too late but may it help someone.

尝试在您的项目中使用dispatchKeyEvent(KeyEvent事件)

Try to use dispatchKeyEvent(KeyEvent event) in your Project

@Override public boolean dispatchKeyEvent(KeyEvent event) {

     Log.i("key pressed", String.valueOf(event.getKeyCode()));
     if(event.getKeyCode()==KeyEvent.KEY_A/*select required keycode*/){

        //perform required  task

     }
     return super.dispatchKeyEvent(event); 
}

它正在向您返回keyCode,请检查Navigation_next按钮的密钥代码.

it is returning you a keyCode check the keycode for navigation_next button.

希望这会对您有所帮助.

Hope this will help you.

这篇关于处理软键盘导航箭头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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