2017-09-08 6 views
3

サムスンS8のような一部のデバイスでは、ナビゲーションバーを非表示にすることができます。 Samsung S8's navigation bar can be hide or show by click left bottom buttonアンドロイドがサムスンギャラクシーS8ナビゲーションバーを検出するプログラムで表示または非表示にする

Androidのソースコードであっても、わかりやすく見つかりませんでした。

私はA good solution to check for navigation barのようないくつかの問題をGoogleにgoogleしましたが、それは役に立ちません。

ご協力いただきありがとうございます。

+0

回答がありますか?私は同じ問題を抱えています – TUSHAR

+0

@ TUSHARいいえ、私はまだ良い解決策を見つけることができません。私はAndroidがそれを標準化すべきだと思う。 – Smiles

+1

サムスンギャラクシーS8 /ノート8だけでなく、Xiaomi、Huaweiなど、フルスクリーンの携帯電話がますます多く登場しています。もしAndroidソースが標準化を早急に行わなければ、これは深刻な問題になる可能性があります。 – Smiles

答えて

0

私のために働いたこの方法を使用してください。 getHeight()が0を返さないように、ビューが最初にレンダリングされていることを確認してください。また、使用しているrootViewが画面全体を占有していることを確認してください。

public static boolean hasNavBar (Activity activity, View rootView) { 
    if (activity == null || rootView == null) 
     return true; 

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) 
     return true; 

    Display d = activity.getWindowManager().getDefaultDisplay(); 
    DisplayMetrics realDisplayMetrics = new DisplayMetrics(); 
    d.getRealMetrics(realDisplayMetrics); 

    int viewHeight = rootView.getHeight(); 
    if (viewHeight == 0) 
     return true; 

    int realHeight = realDisplayMetrics.heightPixels; 
    return realHeight != viewHeight; 
} 
関連する問題