Android監聽輸入法的狀態:彈起,關閉

Android監聽輸入法的狀態:彈起,關閉

  1. 在根視圖添加一個id,@+id=root_view,如
    image.png

  2. 監聽佈局的狀態

    @BindView(R.id.rl_rootview)
    FrameLayout frameLayout;
    
    frameLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    if (isShowBoard) {
                        int heightDiff = frameLayout.getRootView().getHeight() - frameLayout.getHeight();
                        if (heightDiff > dpToPx(getActivity(), 200)) { // if more than 200 dp, it's probably a keyboard...
                            // ... do something here
                            Log.d("----------", "打開");
     
                        } else {
                            Log.d("----------", "關閉");
                           
                        }
                    }
                }
            });
    
    
     //dp轉px
        public float dpToPx(Context context, float valueInDp) {
            DisplayMetrics metrics = context.getResources().getDisplayMetrics();
            return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, valueInDp, metrics);
        }
    
  3. manifest.xml中給activity設置windowSoftInputMode="adjustResize"

    <activity
        android:name=".activity.AddActivity"
        android:windowSoftInputMode="adjustResize"
        android:theme="@style/AppTheme.NoActionBar" />
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章