Titanium SDK 中的 Android 进度指示器(ProgressIndicator)详解

Titanium SDK 中的 Android 进度指示器(ProgressIndicator)详解

titanium-sdk 🚀 Native iOS and Android Apps with JavaScript titanium-sdk 项目地址: https://gitcode.com/gh_mirrors/ti/titanium-sdk

概述

在移动应用开发中,进度指示器(ProgressIndicator)是一个非常重要的UI组件,它用于向用户展示操作进度。Titanium SDK为Android平台提供了Titanium.UI.Android.ProgressIndicator组件,开发者可以通过它创建两种类型的进度指示器:进度对话框和窗口标题栏中的水平进度条。

进度指示器类型

Titanium SDK支持两种主要的进度指示器类型:

  1. 对话框形式(PROGRESS_INDICATOR_DIALOG):模态对话框,会阻塞UI交互
  2. 状态栏形式(PROGRESS_INDICATOR_STATUS_BAR):显示在窗口标题栏中的水平进度条

注意:从Android 4.4开始,状态栏形式的进度指示器已被Google弃用并移除,因此在新设备上无法使用。

创建进度指示器

创建进度指示器有两种方式:

1. 使用JavaScript API

var progressIndicator = Ti.UI.Android.createProgressIndicator({
  message: '正在加载...',
  location: Ti.UI.Android.PROGRESS_INDICATOR_DIALOG,
  type: Ti.UI.Android.PROGRESS_INDICATOR_DETERMINANT,
  min: 0,
  max: 100
});

2. 使用Alloy XML标记

<ProgressIndicator ns="Ti.UI.Android" platform="android" id="progressIndicator"
  message="正在加载..." min="0" max="100" 
  location="Ti.UI.Android.PROGRESS_INDICATOR_DIALOG"
  type="Ti.UI.Android.PROGRESS_INDICATOR_DETERMINANT" />

关键属性详解

基本属性

  • message/messageid:显示的文本消息或本地化字符串键
  • min/max:进度条的最小值和最大值(仅对确定型进度条有效)
  • value:当前进度值(需在代码中动态设置)

行为控制属性

  • cancelable:是否允许用户通过返回键取消对话框
  • canceledOnTouchOutside:当cancelable为true时,点击对话框外部是否取消
  • location:指示器位置(对话框或状态栏)
  • type:指示器类型(确定型或不确定型)

方法使用

显示指示器

progressIndicator.show();

隐藏指示器

progressIndicator.hide();

事件处理

进度指示器支持cancel事件,当用户通过返回键取消对话框时会触发:

progressIndicator.addEventListener('cancel', function(e) {
  // 用户取消了操作
});

实际应用示例

文件下载进度显示

var progress = Ti.UI.Android.createProgressIndicator({
  message: '下载中...',
  location: Ti.UI.Android.PROGRESS_INDICATOR_DIALOG,
  type: Ti.UI.Android.PROGRESS_INDICATOR_DETERMINANT,
  min: 0,
  max: 100,
  cancelable: true
});

progress.show();

// 模拟下载进度更新
var currentProgress = 0;
var interval = setInterval(function() {
  currentProgress += 5;
  progress.value = currentProgress;
  
  if(currentProgress >= 100) {
    clearInterval(interval);
    progress.hide();
    alert('下载完成!');
  }
}, 300);

最佳实践

  1. 合理选择类型:对于可测量进度的操作使用确定型(PROGRESS_INDICATOR_DETERMINANT),对于无法测量进度的使用不确定型(PROGRESS_INDICATOR_INDETERMINANT)

  2. 提供取消选项:长时间操作应该允许用户取消,设置cancelable为true

  3. 及时隐藏:操作完成后应立即隐藏指示器,避免UI阻塞

  4. 用户体验:对于短时间操作(小于1秒)可以考虑不使用进度指示器,以免造成界面闪烁

  5. 替代方案:在Android 4.4+设备上,考虑使用其他UI元素替代状态栏进度指示器

通过合理使用ProgressIndicator组件,可以显著提升Android应用的用户体验,让用户清晰了解当前操作状态,避免因长时间等待而产生焦虑。

titanium-sdk 🚀 Native iOS and Android Apps with JavaScript titanium-sdk 项目地址: https://gitcode.com/gh_mirrors/ti/titanium-sdk

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤红令Nathania

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值