小编Mel*_*tix的帖子

android - 更改 MaterialToolbar 菜单项图标颜色

我目前正在创建一个应用程序,它有一个MaterialToolbar小部件。我想将图标颜色设置为白色。我尝试按照这个问题中接受的答案进行操作,但是,它不起作用。添加colorControlNormalstyles.xml 不起作用。

这是我的 MaterialToolbar xml 代码:

<com.google.android.material.appbar.MaterialToolbar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/topToolbar"
            android:background="@color/colorPrimaryDark"
            app:title="Revo"
            app:titleTextColor="@android:color/white"
            app:menu="@menu/menu_floatingsearchview"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
Run Code Online (Sandbox Code Playgroud)

我能做什么?

编辑、解决方案和说明

谢谢大家的好答案。我设法找到了一个解决方案,其中包括两个解决方案和另一个问题。

这个问题中,被问到为什么colorControlNormal不起作用。接受的答案说,在向量行中,您必须更改给 的值android:fillColor,并将其替换为?attr/colorControlNormal。执行此技巧,项目 colorControlNormal,将控制所需的图标颜色。

在应用样式中,您需要放置:

<item name="colorControlNormal">@android:color/white</item>

然后,在所需的图标中,您需要放置在path

android:fillColor="?attr/colorControlNormal"

就是这样!现在图标将获得赋予 colorControlNormal 属性的颜色!

android android-xml android-theme android-toolbar material-components-android

5
推荐指数
1
解决办法
2971
查看次数

工具栏菜单项在片段中单击 (Kotlin)

在我的应用程序中,我有一个 Activity,其中有一个 FrameLayout。在这个FrameLayout中,有一个fragment,包含一个ToolBar和一个RecyclerView。

在此工具栏中,我有一个搜索按钮,该按钮应在单击项目时启动活动。但是,当我尝试使用 onOptionsItemSelected 时,应用程序会成功构建并安装,但是当我尝试点击有问题的按钮时,什么也没有发生。Logcat 也没有说什么。

可以指出我做错了什么吗?是否有更简单或其他简单的方法来管理工具栏项目的点击?

Fragment.kt

class FragmentTrack : Fragment() {
    ...

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setHasOptionsMenu(true)
    }

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? = inflater.inflate(R.layout.fragment_track, container, false)

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        ...

        topToolbar.setNavigationOnClickListener {
            val dialog = FragmentBottomSheetDrawer()
            dialog.show(childFragmentManager, dialog.tag)

        }
    }

    override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
        inflater.inflate(R.menu.menu_toolbar, menu)
        super.onCreateOptionsMenu(menu, inflater)
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId) {
            R.id.fsvSearch -> …
Run Code Online (Sandbox Code Playgroud)

android android-fragments kotlin android-toolbar

2
推荐指数
1
解决办法
7336
查看次数

如何在C中正确编写一个通过引用接受参数的函数?

我正在搜索此信息一段时间。在互联网上搜索时,许多站点都说一个Function引用是这样写的:

//Example 1
#include <stdio.h>

void somma (int a, int b, int *c) {
    *c = a + b;
}

int main (void) {
    int a = 4;
    int b = 2;
    int c = 8;

    somma(a, b, &c);

    printf("Risultato somma: %d", c);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但这就是我在学校学到的:

#include <stdio.h>

void somma(int a, int b, int &c) {
    c = a + b;
}

int main(void)
{
    int a = 4;
    int b = 2;
    int c = 8;

    somma(a, b, …
Run Code Online (Sandbox Code Playgroud)

c pointers reference

0
推荐指数
1
解决办法
56
查看次数