Listview with edittext - auto scroll on “next”

后端 未结 2 434
走了就别回头了
走了就别回头了 2020-12-20 14:39

I have a ListView with one EditText on each row (in addition to a couple of non-editable TextView\'s). When I\'m editing the text in the EditText, the soft keyboard has \"N

2条回答
  •  既然无缘
    2020-12-20 15:31

    Ok, after struggling for a long time, I finally found a hack (not a proper solution) that works for my case. In the getView of my adapter, I add the onEditorActionListener and inside it:

    ediField.setOnEditorActionListener(new OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            ListView lv = (ListView)parent;
            if(actionId == EditorInfo.IME_ACTION_NEXT &&
               lv != null &&
               position >= lv.getLastVisiblePosition() &&
               position != audit.size() - 1) {  //audit object holds the data for the adapter
                    lv.smoothScrollToPosition(position + 1);
                    lv.postDelayed(new Runnable() {
                        public void run() {
                            TextView nextField = (TextView)holderf.qtyf.focusSearch(View.FOCUS_DOWN);
                            if(nextField != null) {
                                nextField.requestFocus();
                            }
                        }
                    }, 200);
                    return true;
            }
            return false;
        }
    });
    

提交回复
热议问题