2017-11-16 11 views
2

アクティビティの2つの断片があります。最初のフラグメントが表示されたら、ステータスバーを半透明にします(ここにはツールバーはありません)。それは期待どおりに動作します。ステータスバーをプログラムで不透明にします

しかし、2番目のフラグメントに切り替えると、ステータスバーが不透明になります。また、ステータスバーの下にツールバーが表示されます。私はこれらの変更をアクティビティXMLで行うことはできないので、プログラムで行うことを願っています。

これまでのところ、次のコードを試しました。しかし、これは機能しません。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
    { 
     Window window = getActivity().getWindow(); 
     view.setFitsSystemWindows(true); 
     window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_LAYOUT_FLAGS); 
     window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
     window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 
     window.addFlags(WindowManager.LayoutParams.TYPE_STATUS_BAR); 
     window.setStatusBarColor(ContextCompat.getColor(getContext(), R.color.colorPrimaryDark)); 
    } 

これは私が取得しています画面です:

incorrect_behaviour

をしかし、私は、ステータスバーがprimaryDarkの色とその下に表示されるツールバーを持つようにしたいです。私が正しくあなたを理解したよう

のAndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="in.blogspot.smarphy.pierecipe"> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true"> 
     <activity 
      android:name=".SplashActivity" 
      android:theme="@style/AppTheme"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".HomeyActivity" 
      android:label="@string/title_activity_homey" 
      android:theme="@style/AppTheme"> 
      <intent-filter> 
       <action android:name="android.intent.action.SEARCH" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".RecipesCardsActivity" 
      android:label="@string/title_activity_recipes_cards" 
      android:parentActivityName=".HomeyActivity" 
      android:theme="@style/AppTheme.OpaqueStatus" /> 

     <service android:name=".Services.HomeCardsNetworkService" /> 
     <service android:name=".Services.SearchCardsNetworkService" /> 

    </application> 

</manifest> 

答えて

0

あなたはこれを使用することができますフラグメント2では、この

android:theme="@style/FullscreenTheme" 

を使用しない場合は、おそらくあなたの活動にこれを持っているあなたは2

にフラグメント1から切り替えると、正常にフルスクリーンから切り替えたいです非フルスクリーンモードを設定します。 @Nullable

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
     .... 
    } 
    @Override 
    public void onDestroyView() { 
     getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
     .... 
    } 

非フルスクリーンを追加するときは、フルスクリーンフラグをクリアする必要があります。

情報: 半透明ステータスバーがAPIレベル19で導入されました。

+0

動作していません – Anand

+0

@Anandあなたの活動に関するマニフェストのコードで質問を更新できますか? –

+0

編集してください、 – Anand

関連する問題