2017-03-16 1 views
0

Ich versuche, eine benutzerdefinierte Aktionsleiste zu einem benutzerdefinierten Material Android Theme hinzufügen.setSupportActionBar mit benutzerdefinierten Material Thema

Das Problem ist, damit das Thema funktioniert, muss meine MainActivity Activity erweitern, und die Methode setSupportActionBar erfordert die MainActivity, um AppCompatActivity zu erweitern.

Hier ist meine 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); 
} 

Mein 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> 

Und mein Stil

<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> 

Antwort

0

Sie benötigen ein AppCompat Theme verwenden:

<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> 

Dann können Sie haben MainActivity AppCompatActivity erweitern:

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

Vielen Dank! Ich hatte Angst, dass mit AppCompat das gesamte Material Design weg wäre, aber anscheinend sind die Ressourcen immer noch da. –

Verwandte Themen