来自style.xml的ActionBarStyle和AppCompat v7支持库

时间:2018-03-28 21:17:28

标签: android android-actionbar appcompat-v7-r23

我搜索了整个网络。尝试了数十种解决方案。我也遵循Android的文档,但我无法做到我想要的。 我只想制作动作栏背景渐变。我制作了可绘制的xml文件:

action_bar.xml

password_verify()

我的style.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient android:angle="270"
        android:startColor="@color/colorActionBarStart"
        android:endColor="@color/colorActionBarEnd" />
</shape>

我用android多次看过同样的事情。有很多答案,但没有一个有效。我想要做的只是为动作栏制作渐变背景。以前没有人用appcompat v7库做过这个吗?为什么这么难? 可能是我无法得到因为我在Android开发方面如此新鲜。如果是这种情况,请告诉我正确的观点。

请帮帮我。 谢谢。

1 个答案:

答案 0 :(得分:1)

就个人而言,我不使用像# list_fractions[:] returns a new list with references to the same values as # the original list, but unaffected by subsequent additions and removals for fraction in list_fractions[:]: numerator = fraction.numerator denominator = fraction.denominator list_fractions.append(MyFraction(denominator, 2*numerator)) 这样的主题提供的默认操作栏。相反,我会这样做:

  • 使用list_fractions
  • 等主题
  • 在我的布局中添加Theme.AppCompat.Light标记
  • 致电Theme.AppCompat.Light.NoActionBar并传递我的工具栏

这让我可以直接在布局文件中设置工具栏的背景。那说......

我尝试使用您发布的基本主题,我也无法使用样式设置默认操作栏的背景。但是,我通过在<Toolbar>中删除setSupportActionBar()主题项并在Java中执行它来获得渐变:

actionBarStyle

如果您的目标是为应用中的每个屏幕执行此操作,则可以创建一个onCreate()课程并让所有其他活动扩展而不是Drawable d = ContextCompat.getDrawable(this, R.drawable.action_bar); getSupportActionBar().setBackgroundDrawable(d);

BaseActivity