2016-06-30 148 views

回答

0

不它有助于:

setOnEditorActionListener(new OnEditorActionListener() { 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) { 
      Log.i(TAG,"Enter pressed"); 
     }  
     return false; 
    } 
}); 
+0

谢谢你,但仍然未能 – shucc

+0

@ChenChao你可以请提供全部键盘屏幕截图? –

0

的活动:

final View activityRootView = findViewById(R.id.activityRoot); 
    activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
       @Override 
       public void onGlobalLayout() { 
        Rect r = new Rect(); 

        activityRootView.getWindowVisibleDisplayFrame(r); 

        int heightDiff = view.getRootView().getHeight() - (r.bottom - r.top); 
        if (heightDiff > 100) { 
        //enter code when show keyboard 
        }else{ 
        //enter code when hide keyboard 
        } 
       } 
      }); 

对于片段:

view = inflater.inflate(R.layout.live_chat_fragment, null); 
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() { 
       Rect r = new Rect(); 
       //r will be populated with the coordinates of your view that area still visible. 
       view.getWindowVisibleDisplayFrame(r); 

       int heightDiff = view.getRootView().getHeight() - (r.bottom - r.top); 
       if (heightDiff > 500) { // if more than 100 pixels, its probably a keyboard... 
       //enter code when show keyboard 
       }else{ 
       //enter code when hide keyboard 
       } 
      } 
     });