setSupportActionBar具有自定义材质主题

时间:2017-03-16 21:40:36

标签: java android xml

我尝试将自定义操作栏添加到自定义素材Android主题。

问题是,要使Theme工作,我的MainActivity需要扩展Activity,而setSupportActionBar方法需要MainActivity来扩展AppCompatActivity。

这是我的主要活动:

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>

1 个答案:

答案 0 :(得分:0)

您需要使用AppCompat主题:

<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);
    }
}