1

ここで私はViewPager for Fragmentを使用していますが、ナビゲーションを制御するためにカスタムビューページャーを使用しました。ここ はソフトキーボード操作矢印の処理

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*/); 
    } 
} 

}があり

なしスワイプや作業のイベントをクリックして、クラスです。しかし、私の問題は、それがLAST NAME後、

image私はFIRST NAMEを選択して、私のタブレット(サムスン)上の矢印ボタンをクリックしたとき、それはに、その後MIDDLE NAMEに移動LAST NAME何です次の区分にナビゲート ie;私のビューページャの[はじめに]タブ。 これは私の問題です、これを防ぐ方法は?私は、私はのEditTextプロパティnextFocusForwardを設定し、

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; 
    } 
}); 

けどダメを試してみました何


どのようにそのソフトキーを非表示にするには?またはアクションを制御する方法? このキーボードで問題が発生しているのは、私の電話の(Samsung Tabでは)このようなキーはありません。 この問題を解決するにはどうすればよいですか?

答えて

0

私はそれが遅すぎると知っていますが、それは誰かを助けるかもしれません。

プロジェクトでdispatchKeyEvent(KeyEventのイベント)を使用してみてください

@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); 
} 

それはnavigation_nextボタンのキーコードをチェックし、あなたにキーコードを返しています。

希望すると、これが役立ちます。

関連する問題