You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8 MAUI:如何自定义Android端默认Page.IsBusy的ActivityIndicator样式?

修改.NET MAUI中IsBusy对应内置ActivityIndicator的样式

情况1:修改Shell的IsBusy加载指示器颜色

如果是设置AppShell.IsBusy = true触发的中心加载指示器,无需修改Android平台资源,直接在XAML中配置即可:

  • 方式一:直接在AppShell.xaml中设置属性
<Shell
    x:Class="YourAppName.AppShell"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    BusyIndicatorColor="#FF0000"> <!-- 替换为你需要的颜色值 -->
    <!-- Shell内容 -->
</Shell>
  • 方式二:在Styles.xaml中定义全局Shell样式
<Style TargetType="Shell">
    <Setter Property="BusyIndicatorColor" Value="#FF0000" />
</Style>

情况2:修改Page的IsBusy对应Android端顶部进度条颜色

如果是设置Page.IsBusy = true触发的Android顶部ActionBar进度条,需要修改Android平台的资源文件:

  1. 打开项目的Platforms/Android/Resources/values/styles.xml文件(若不存在则新建)
  2. 在文件中定义自定义主题和进度条样式:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
    <!-- 自定义应用主题,继承自MAUI默认主题 -->
    <style name="AppTheme" parent="Theme.Maui.Light">
        <!-- 设置进度条的色调 -->
        <item name="android:progressBarStyle">@style/CustomProgressBar</item>
        <!-- 同时修改系统 accent 色,适配部分旧版本 -->
        <item name="colorAccent">#FF0000</item>
    </style>

    <!-- 自定义进度条样式 -->
    <style name="CustomProgressBar" parent="Widget.AppCompat.ProgressBar">
        <item name="android:indeterminateTint">#FF0000</item> <!-- 加载指示器的颜色 -->
    </style>
</resources>
  1. 打开Platforms/Android/AndroidManifest.xml,将应用主题指定为自定义的AppTheme:
<application
    android:allowBackup="true"
    android:icon="@mipmap/appicon"
    android:roundIcon="@mipmap/appicon_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <!-- 其他配置 -->
</application>

你之前在Styles.xaml修改普通ActivityIndicator样式无效,是因为这两种内置指示器并不直接使用普通ActivityIndicator的样式:Shell的IsBusy绑定专属属性,Page的IsBusy在Android端调用的是系统ActionBar的进度条组件,所以需要针对性配置。

内容的提问来源于stack exchange,提问作者Cody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 12:05:18