Titanium SDK 中的 Android 进度指示器(ProgressIndicator)详解
概述
在移动应用开发中,进度指示器(ProgressIndicator)是一个非常重要的UI组件,它用于向用户展示操作进度。Titanium SDK为Android平台提供了Titanium.UI.Android.ProgressIndicator
组件,开发者可以通过它创建两种类型的进度指示器:进度对话框和窗口标题栏中的水平进度条。
进度指示器类型
Titanium SDK支持两种主要的进度指示器类型:
- 对话框形式(PROGRESS_INDICATOR_DIALOG):模态对话框,会阻塞UI交互
- 状态栏形式(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);
最佳实践
-
合理选择类型:对于可测量进度的操作使用确定型(PROGRESS_INDICATOR_DETERMINANT),对于无法测量进度的使用不确定型(PROGRESS_INDICATOR_INDETERMINANT)
-
提供取消选项:长时间操作应该允许用户取消,设置cancelable为true
-
及时隐藏:操作完成后应立即隐藏指示器,避免UI阻塞
-
用户体验:对于短时间操作(小于1秒)可以考虑不使用进度指示器,以免造成界面闪烁
-
替代方案:在Android 4.4+设备上,考虑使用其他UI元素替代状态栏进度指示器
通过合理使用ProgressIndicator组件,可以显著提升Android应用的用户体验,让用户清晰了解当前操作状态,避免因长时间等待而产生焦虑。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考