我正在使用自定义操作栏,所以我用我的代码在@ drawable / menu / themes.xml中创建了一个名为themes的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:windowNoTitle">false</item>
<item name="android:windowFullscreen">true</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">#2d73c4</item>
</style>
</resources>
我还用我的代码创建了一个放在@ drawable / menu / actionbar.xml中的.xml文件名操作栏:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/search"
android:showAsAction="always"
android:title="Αναζήτηση"
android:icon="@drawable/ic_action_search"/>
</menu>
所以当我使用listview时,我希望在我选择的项目上更改颜色。 我在themes.xml中尝试了这一行,但它没有用。
<item name="android:colorActivatedHighlight">@android:color/transparent</item>
答案 0 :(得分:0)
我假设您在操作栏中使用Toolbar
或android.support.v7.widget.Toolbar
小部件,然后我在此处举例说明使用Toolbar
小部件:
<?xml version="1.0" encoding="utf-8" ?>
<Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/actionBarSize"
android:background="?android:attr/colorPrimary"
android:theme="@android:style/ThemeOverlay.Material.Dark.ActionBar" />
然后在包含用于更改操作栏背景颜色的ListView
的页面中,您可以添加此Toolbar
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<ListView
android:id="@+id/lv"
android:layout_height="match_parent"
android:layout_width="match_parent" />
</LinearLayout>
然后在代码后面通过其id找到此Toolbar
并订阅listview的ItemSelected
事件:
public Toolbar toolbar;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);
SetActionBar(toolbar);
ListView lv = (ListView)FindViewById(Resource.Id.lv);
lv.ItemSelected += Lv_ItemSelected;
}
最后设置背景颜色,例如:
private void Lv_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
toolbar.SetBackgroundColor(Color.BlueViolet);
}
当然,您可以在AdapterView.ItemSelectedEventArgs
中找到商品信息,并根据参数设置颜色。