gpt4 book ai didi

c# - 我可以在 Xamarin.Forms 中以编程方式更改 styles.xml 吗?

转载 作者:太空狗 更新时间:2023-10-29 21:59:56 26 4
gpt4 key购买 nike

我们有一个可以自定义颜色的应用程序。这使得 ListView 中选定项目的橙色 Android 默认值有时看起来很糟糕。我们想要更改 ListView 的所选项目的颜色。

我知道如何在页面的后台代码 (xaml.cs) 中执行此操作,而且我知道您可以在 styles.xml 中静态更改它。但是因为 ListView 的颜色可以改变,所以无论我们选择什么颜色,我们都可能会遇到类似的问题。

有没有办法从代码访问和更改 styles.xml 值?

最佳答案

您可以使用 Xamarin Themes 来完成有关于如何操作的清晰教程。

然后你可以使用下面的来改变主题

void OnPickerSelectionChanged(object sender, EventArgs e)
{
Picker picker = sender as Picker;
Theme theme = (Theme)picker.SelectedItem;

ICollection<ResourceDictionary> mergedDictionaries = Application.Current.Resources.MergedDictionaries;
if (mergedDictionaries != null)
{
mergedDictionaries.Clear();

switch (theme)
{
case Theme.Dark:
mergedDictionaries.Add(new DarkTheme());
break;
case Theme.Light:
default:
mergedDictionaries.Add(new LightTheme());
break;
}
}
}

更新:

如果你想在 android 上更改选择,你必须在你的 android styles.xml 文件中进行,要动态更改它你必须编写一个影响:

<?xml version="1.0" encoding="utf-8" ?>
<resources>
<color name="DarkYellow">#FF00FF</color>
<style name="Theme.MyHoloLight" parent="android:Theme.Holo.Light">
<item name="android:colorPressedHighlight">@color/DarkYellow</item>
<item name="android:colorLongPressedHighlight">@color/DarkYellow</item>
<item name="android:colorFocusedHighlight">@color/DarkYellow</item>
<item name="android:colorActivatedHighlight">@color/DarkYellow</item>
<item name="android:activatedBackgroundIndicator">@color/DarkYellow</item>
</style>
</resources>

关于c# - 我可以在 Xamarin.Forms 中以编程方式更改 styles.xml 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48465053/

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