2015-03-31 204 views
1

//最近,我正在學習Google的Material Design。這太神奇了!我看到了Chris Banes's question,我跟着回覆。這裏是我的代碼:方法setStatusBarBackgroundColor()未定義類型DrawerLayout

公共類MainActivity擴展活動{

Toolbar toolbar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setActionBar(toolbar); 
    DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 
    drawerLayout.setStatusBarBackgroundColor(100, 100, 100); 

} 

}

//但這種方法 'setStatusBarBackgroundColor' 不能用,爲什麼?

//我的XML的一部分:

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/drawerLayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:context=".MainActivity" > 

<com.example.app.ScrimInsetsFrameLayout 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/scrimInsetsFrameLayout" 
    android:layout_width="320dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="@color/base" 
    android:elevation="10dp" 
    android:fitsSystemWindows="true" 
    app:insetForeground="#4000" /> 

//和樣式:

<resources> 
<style name="AppBaseTheme" parent="android:Theme.Material.Light.NoActionBar"> 
</style> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:colorPrimary">@color/base</item> 
    <item name="android:colorPrimaryDark">@color/base</item> 
    <item name="android:statusBarColor">@android:color/transparent</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
</style> 

回答

0

但這種方法 'setStatusBarBackgroundColor' 不能用,爲什麼?

因爲,你可以在documentation看到,setStatusBarBackgroundColor(int)需要代表色彩的單個int參數設置:

public void setStatusBarBackgroundColor (int color)

設置一個繪製中的插圖中區畫狀態欄。請注意,只有在此DrawerLayout適合SystemWindows時纔會激活此功能。

參數
顏色 - 顏色使用作爲背景繪製在0xAARRGGBB格式的狀態欄後面畫。

但是,你想給它3個參數:

drawerLayout.setStatusBarBackgroundColor(100, 100, 100); 

假設那些RGB值你要設置,更改上面的線:

drawerLayout.setStatusBarBackgroundColor(android.graphics.Color.rgb(100, 100, 100)); 
+0

是的,你是對的,我糾正了它,但它仍然有錯誤的提示。 – linjiang 2015-03-31 12:51:49

+0

@freshMan:請定義「出錯了」?即複製粘貼您的IDE給您的確切錯誤,或製作截圖。 – 2015-03-31 15:29:21

+0

IDE給我的是上面的標題,除此之外,沒有別的。這個問題困擾了我好幾天。 – linjiang 2015-04-01 03:35:02

0

我已經從libs文件夾中刪除了support-v4-18.0.0.jar並再次同步glade文件,然後我的問題得到修復。謝謝@freshMan。

相關問題