Chuyển đến nội dung

Indicator có sẵn ​

LoaderKit có sẵn 50 indicator. Trên mọi nền tảng chúng có cùng tên, cùng params và cùng chuyển động. Bấm vào một indicator để mở panel của nó: đổi params, màu, tốc độ và kích thước, rồi copy code cho nền tảng của bạn.

Indicator có sẵn hay progress?

  • Không bao giờ có % (chờ request, pull to refresh): dùng một indicator có sẵn trên trang này.
  • Tác vụ có tiến độ, kể cả khi lúc đầu chưa biết (download, upload, xử lý file): dùng progress indicator. Bắt đầu ở chế độ vô định với value là null (nil trong Swift), rồi đặt value khi đã biết. Vẫn là một component, nên không phải đổi gì khác.

Tên và params ​

Hiện tại chỉ có hai indicator có sẵn nhận params. Các indicator còn lại có thiết kế cố định, bạn thay đổi chúng qua color, colors, kích thước và tốc độ.

IndicatorParams (mặc định)Chu kỳ (s)
Atomkhông có1.5
AudioEqualizerkhông có4.3
BallBeatkhông có0.7
BallClipRotatekhông có0.75
BallClipRotateMultiplekhông có1
BallClipRotatePulsekhông có1
BallDoubleBouncekhông có2
BallFallkhông có1
BallGridBeatkhông có1
BallGridPulsekhông có1
BallHelixkhông có1.8
BallHoneycombkhông có1.4
BallMergekhông có1.4
BallPulsecount (3), minScale (0.3)0.75
BallPulseRisekhông có1
BallPulseSynckhông có0.6
BallRotatekhông có1
BallRotateChasekhông có1.5
BallScalekhông có1
BallScaleMultiplekhông có1
BallScaleRipplekhông có1
BallScaleRippleMultiplekhông có1.25
BallSpinFadeLoadercount (8), minScale (0.4), minOpacity (0.3)1
BallSquareSpinkhông có1
BallTrianglePathkhông có2
BallZigZagkhông có0.7
BallZigZagDeflectkhông có1.5
ChasingDotskhông có2
CircleStrokeSpinkhông có1.7
CubeTransitionkhông có1.6
JellyBoxkhông có0.9
LineScalekhông có1
LineScalePartykhông có1
LineScalePulseOutkhông có1
LineScalePulseOutRapidkhông có0.9
LineSlidekhông có1.5
LineSpinFadeLoaderkhông có1.2
NewtonCradlekhông có1.2
Orbitkhông có1.9
Pacmankhông có1
Radarkhông có2
RunningDotskhông có2
SemiCircleSpinkhông có0.6
SquareGridFlipkhông có1.6
SquareGridWavekhông có1.3
SquareSpinkhông có3
Timerkhông có4
TriangleOrbitkhông có2.1
TriangleSkewSpinkhông có3
TripleArcSpinkhông có2.4

Chu kỳ là thời gian của một vòng lặp ở speed 1. Dùng speed để làm nó nhanh hơn hoặc chậm hơn.

Các params ​

ParamIndicatorÝ nghĩa
countBallPulseSố quả bóng trong hàng. Được làm tròn tới số nguyên gần nhất, tối thiểu là 1.
minScaleBallPulseScale nhỏ nhất của một quả bóng khi pulse, từ 0 đến 1.
countBallSpinFadeLoaderSố quả bóng trên vòng tròn. Được làm tròn tới số nguyên gần nhất, tối thiểu là 1.
minScaleBallSpinFadeLoaderScale nhỏ nhất của một quả bóng khi mờ dần.
minOpacityBallSpinFadeLoaderOpacity thấp nhất của một quả bóng khi mờ dần.

Params nào bạn truyền vào mà indicator không khai báo thì sẽ bị bỏ qua, nên khi đổi sang indicator khác bạn cứ giữ nguyên params cũng không sao. Code mẫu xem ở Tùy chỉnh.

Lấy danh sách tên lúc runtime ​

ts
import { BUILTIN_INDICATOR_NAMES } from '@loader-kit/web';

console.log(BUILTIN_INDICATOR_NAMES); // ['Atom', 'AudioEqualizer', ...]
kotlin
import io.github.maitrungduc1410.loaderkit.BuiltinIndicators

BuiltinIndicators.names                 // List<String>
BuiltinIndicators["BallPulse"]          // IndicatorSpec?, null nếu tên không tồn tại
swift
import LoaderKit

IndicatorSpec.builtinNames              // [String]
IndicatorSpec.builtin(named: "BallPulse")
csharp
using LoaderKit;

foreach (var name in BuiltinIndicators.Names) Console.WriteLine(name);
var spec = BuiltinIndicators.Get("BallPulse");

Tên không tồn tại ​

Truyền một tên không tồn tại không bao giờ làm app crash. View sẽ không vẽ gì và báo lỗi:

Nền tảngLỗi được báo ở đâu
WebspecError trên LoaderKitView, option onError, event loaderkit-error của <loader-kit>
Android Viewcallback onError (được ghi log nếu bạn không đặt callback)
Composemột warning trong Logcat
ApplespecError trên LoaderKitView
WindowsSpecError và event SpecFailed

Ghi nhận ​

Chuyển động của phần lớn indicator có sẵn lấy từ NVActivityIndicatorView, loaders.css, DGActivityIndicatorView và SpinKit; số còn lại được thiết kế riêng cho LoaderKit. Xem THIRD_PARTY_NOTICES.md trong repo.

Phát hành theo giấy phép MIT.