如何使用ViewPager android禁用或隐藏键盘的左右箭头

时间:2017-12-06 06:10:21

标签: java android android-viewpager

我尝试使用此代码在keyboard上禁用左侧和右侧,但在左侧和右侧viewPager按下button会更改寻呼机的状态。

edComment.setOnEditorActionListener(
    new EditText.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

        if (actionId == EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS
                || actionId == EditorInfo.IME_FLAG_NAVIGATE_NEXT
                || actionId == EditorInfo.IME_ACTION_PREVIOUS
                || actionId == EditorInfo.IME_ACTION_NEXT
                ) {


            return false;


        }
        // Return true if you have consumed the action, else false.
        return false;
    }
});

enter image description here

3 个答案:

答案 0 :(得分:1)

键盘应用可以显示它想要的任何键。没有办法强迫它不显示某些按钮,即使有另一个键盘也不会遵循相同的规则。

答案 1 :(得分:1)

您可以扩展ViewPager并覆盖arrowScroll方法,如下所示:

public class Wizard extends ViewPager {
    @Override
    public boolean arrowScroll(int direction) {
        // Never allow pressing keyboard arrows to switch between pages
        return false;
    }
}

答案 2 :(得分:0)

根据@Gabe Sechan按钮没有隐藏或禁用所以我这样做

  @Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    Log.i("your tag", "Keycode: " + keyCode);
    switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_LEFT:
           Log.e("Click","left");

           /* for (int n = 0; n < count; n++) {

                setCurrentPage(arrayListView.get(n + 1));
            }*/


            pager.setCurrentItem(getItem(+1), true);
            return true;
        case KeyEvent.KEYCODE_DPAD_RIGHT:
            Log.e("Click","right");


            pager.setCurrentItem(getItem(-1), true);



            return true;
        case KeyEvent.KEYCODE_DPAD_UP:
            Log.e("Click","up");
            return true;
        case KeyEvent.KEYCODE_DPAD_DOWN:
            Log.e("Click","Down");
            return true;
        default:
            return super.onKeyUp(keyCode, event);
    }
}