gpt4 book ai didi

android - 如何在android中突出显示操作栏项目选择

转载 作者:太空狗 更新时间:2023-10-29 16:40:33 26 4
gpt4 key购买 nike

我正在创建一个应用程序,其中我在操作栏中包含三个项目。我希望当我单击其中一项时,它应该突出显示。

我浏览了几个可用的示例,但得出的结论是我必须使用以下方法创建样式ActionBar 样式生成器工具。

我引用了以下链接..但不满意

how to highlight a menu item on selection?

这是唯一的出路吗?

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:actionBarItemBackground">@drawable/action_bar_item_selector</item>
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>

选择器.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:drawable="@drawable/ic_action_blue" />
<item android:state_pressed="true"
android:drawable="@drawable/ic_action_green" />
<item android:drawable="@android:color/transparent" />
</selector>

但是选择不会像 state_pressed 和 state_focused 那样保持停滞。

我希望该项目在用户进行该 Activity 之前一直突出显示。

最佳答案

处理这个问题的更优雅的方法是简单地使用一个 bool 值来检查两种状态,如果您使用具有不同状态颜色的相同可绘制对象,我会推荐您可以使用 colorFilter 方法应用于您的可绘制对象。

 private boolean mSomeValue = true; 

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// determine the menu item you want to highlight when selected
switch(item.getItemId) {
case yourItem : {
if (mSomeValue) {
item.getIcon().setColorFilter(YourColor, PorterDuff.Mode.MULTIPLY);
mSomeValue = false;
} else {
mSomeValue = true;
item.getIcon().setColorFilter(Default, PorterDuff.Mode.MULTIPLY);
}
break; ...
}
}
return super.onOptionsItemSelected(item);
}

关于android - 如何在android中突出显示操作栏项目选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18460865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com