【Android UI】狀態欄和toolbar顏色一致

分類:IT技術 時間:2017-07-01

1、在style.xml中定義toolbar的顏色

 

[html] view plain copy

 print?

  1. <resources>  
  2.   
  3.     <!-- Base application theme. -->  
  4.     <style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">  
  5. ADVERTISEMENT
  6.         <!-- Customize your theme here. -->  
  7.         <!-- toolbar(actionbar)顏色 -->  
  8.         <item name="colorPrimary">#4876FF</item>  
  9. ADVERTISEMENT
  10.         <item name="android:windowTranslucentStatus">true</item>  
  11.     </style>  
  12.   
  13.     <style name="AppTheme" parent="@style/AppBaseTheme"></style>  
  14.   
  15. </resources>  
  16. ADVERTISEMENT


2、布局文件添加屬性

 

 

[plain] view plain copy

 print?

  1. android:fitssystemWindows="true"  
  2. android:clipToPadding="true"  


3、在Activity的onCreate(Bundle savedInstanceState)方法中添加代碼

 

 

[Java] view plain copy

 print?

  1. @Override  
  2. protected void onCreate(Bundle savedInstanceState) {  
  3. ADVERTISEMENT
  4.     super.onCreate(savedInstanceState);  
  5.   
  6.     if (Build.version.SDK_INT >= Build.VERSION_CODES.KITKAT) {  
  7.         Window window = getWindow();  
  8.         window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS  
  9.                 | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);  
  10.         window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  
  11.                 | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  
  12.                 | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);  
  13.         window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);  
  14.         //獲取樣式中的屬性值  
  15.         TypedValue typedValue = new TypedValue();  
  16.         this.getTheme().resolveAttribute(android.R.attr.colorPrimary, typedValue, true);  
  17.         int[] attribute = new int[] { android.R.attr.colorPrimary };  
  18.         TypedArray array = this.obtainStyledAttributes(typedValue.resourceId, attribute);  
  19.         int color = array.getColor(0, Color.TRANSPARENT);  
  20.         array.recycle();  
  21.   
  22.         window.setStatusBarColor(color);  
  23.     }  
  24.   
  25.     setContentView(R.layout.activity_main);  
  26.   
  27. }  

 

 


Tags: quot gt style lt savedInstanceState onCreate

文章來源:



相關文章