2017-03-16 77 views
0

我試圖將自定義操作欄添加到自定義材質Android主題。setSupportActionBar自定義材質主題

問題是,爲了使主題工作,我的MainActivity需要擴展Activity,並且setSupportActionBar方法需要MainActivity來擴展AppCompatActivity。

這裏是我的MainActivity:

import android.app.Activity; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.Toolbar; 
import android.view.Menu; 

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar myToolbar = (Toolbar) findViewById(R.id.myToolbar); 
    setSupportActionBar(myToolbar); 
} 

我ActivityMain.xml

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="start" 
    android:orientation="vertical"> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/myToolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/ap_main_dark" 
     android:elevation="4dp" 
     android:theme="@style/ThemeOverlay.AppCompat.ActionBar" /> 
</LinearLayout> 

而我的風格

<style name="AjudarOPeixe" parent="android:Theme.Material.Light.NoActionBar" > 
    <item name="android:colorAccent">@color/ap_red</item> 
    <item name="android:navigationBarColor">@color/ap_main</item> 
    <item name="android:statusBarColor">@color/ap_main_dark</item> 
    <item name="android:colorPrimary">@android:color/background_light</item> 
    <item name="android:textColorPrimary">@android:color/background_dark</item> 
</style> 

回答

0

您需要使用程序兼容性主題:

<style name="AjudarOPeixe" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorAccent">@color/ap_red</item> 
    <item name="navigationBarColor">@color/ap_main</item> 
    <item name="statusBarColor">@color/ap_main_dark</item> 
    <item name="colorPrimary">@android:color/background_light</item> 
    <item name="textColorPrimary">@android:color/background_dark</item> 
</style> 

然後你就可以有MainActivity擴展AppCompatActivity:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar myToolbar = (Toolbar) findViewById(R.id.myToolbar); 
     setSupportActionBar(myToolbar); 
    } 
} 
+0

非常感謝!我擔心使用AppCompat的所有材質設計將會消失,但顯然資源仍然存在。 –