状态栏的颜色不会随Theme.AppCompat.Light而改变

时间:2015-07-28 03:08:22

标签: java android material-design statusbar android-appcompat

我正在尝试在我的应用程序中使用Material Design,并使用浮动操作按钮,我正在使用appcompat-v7库。但是,为了使用它,我必须使用主题:“Theme.AppCompat.Light”。而且我无法在API 22的应用程序上设置背景颜色。我在API 20或者下面进行此工作并不感兴趣

在Android文档中,它说我只需要在android上使用colorPrimary和colorPrimaryDark:Theme.Material https://developer.android.com/intl/pt-br/training/material/theme.html

我的风格如下:

package com.example.rafael.encomendasmaterial.activities;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import com.example.rafael.encomendasmaterial.R;

public class MainActivity extends ActionBarActivity {
    private FloatingActionButton myFAB;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myFAB = (FloatingActionButton) findViewById(R.id.myFAB);
        setTheme(R.style.AppTheme);
        callCadastroEncoemnda();
    }
    public void callCadastroEncoemnda(){
        myFAB.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, CadastroEncomenda.class);
                MainActivity.this.startActivity(intent);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

我的主要活动:

width

3 个答案:

答案 0 :(得分:1)

就我而言,状态栏没有反映,因为我设置了

<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>

删除行即可解决

答案 1 :(得分:0)

由于您使用的是支持库,因此API 7中不存在的某些属性不应该是android命名空间,因为它们是由库提供的。

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="android:textColorPrimary">@color/primary_text</item>
        <item name="android:textColorSecondary">@color/secondary_text</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:textColor">@color/textColor</item>
    </style>
</resources>

答案 2 :(得分:-2)

我忘记在colorPrimary,colorPrimaryDark和colorAccent之前加上“android:”。它现在正在工作!感谢。

while(true) {
    if(GUI.Button(Rect(500,680 ,100,30),"Next"))
        break
    }