2016-10-03 15 views
0

ソフトキーボードポップアップでアクションバーを非表示にしたい。私は結果を得るために次のコードをコードに使用しました。しかし、私が戻ってきたいとき、アプリがクラッシュします。私はどのラインにも私はエラーを取得しているが含まれています。これで私を導いてください。ソフトキーボードポップアップのアクションバーを非表示にする

ありがとうございます。

ます。private void CREATEVIEW(){

mRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 

     @Override 
     public void onGlobalLayout() { 

      Rect rect = new Rect(); 
      //rect will be populated with the coordinates of your view that area still visible. 

      mRootView.getWindowVisibleDisplayFrame(rect); 
      int heightDiff = mRootView.getRootView().getHeight() - (rect.bottom - rect.top); 

      if (heightDiff > 100) { 

       // if more than 100 pixels, its probably a keyboard... 
       //keyboard visible 
       mBinding.healthRecordContainer.setVisibility(View.GONE); 
       ((AppCompatActivity) getActivity()).getSupportActionBar().hide(); 

      } else { 

       //keyboard not visible 
       mBinding.healthRecordContainer.setVisibility(View.VISIBLE); 
       ((AppCompatActivity) getActivity()).getSupportActionBar().show(); // app crashes 
      } //java.lang.NullPointerException 
     } 
    }); 
} 
+0

それを試してみてください:[http://stackoverflow.com/questions/15327208/how-to-show-hide-actionbar-when-clicked-on](http://stackoverflow.com/questions/15327208/how-to-show-hide-action-click-on) –

答えて

0

次のコードを使用できます。その後、アプリはクラッシュしません。

Activity activity = getActivity(); 

if (activity instanceof ActionBarActivity) { 

    ActionBarActivity actionBarActivity = (ActionBarActivity) activity; 

    ActionBar actionBar = actionBarActivity.getSupportActionBar(); 

    if (actionBar != null) { 
     actionBar.hide(); 
    } 
} 
+0

あなたの答えに感謝します。 – Harshith

0

は、あなたがあなたの活動を宣言したマニフェストにだけ一つのことを行います。例えば、

<activity 
      android:name=".Your Activity here" 
      android:windowSoftInputMode="stateVisible|adjustResize" 
      > 
     </activity> 
+0

これはソフトキーボードを隠すためのものですか? – Harshith

関連する問題