पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

flutter_skeleton_ui कवर
पैकेज विवरणv0.0.6

flutter_skeleton_ui

एक फ्लटर पैकेज जो लोडिंग के दौरान पेज के लेआउट की नकल करने के लिए कस्टम स्केलेटन विजेट बनाने के लिए है।

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
12.4 हज़ार
लाइक
43
Pub अंक
150

पैकेज इंस्टॉल करें

flutter pub add flutter_skeleton_ui

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

flutter_skeleton_ui एक Flutter पैकेज है जो डेटा के पूर्ण लोड होने से पहले उपयोगकर्ता अनुभव को चिकना बनाने के लिए UI तत्वों के लिए कस्टमाइज़ किए गए स्केलेटन स्थान बनाने में विकासकर्ताओं की सहायता करता है। यह वास्तविक सामग्री के लेआउट की नकल करता है। इस पैकेज में कार्ड, सूचियाँ और पाठ स्थान भरने वाले विभिन्न विजेट्स का समर्थन है, जिसमें एनीमेशन और स्टाइलिंग के विकल्प भी शामिल हैं। ऐप में अनुभवी प्रदर्शन को बढ़ाने और दृश्य झटके को कम करने के लिए आदर्श है।

उपयोग

  • लोडिंग स्क्रीन स्थानाभारक
  • डेटा फ़ैच के दौरान लेआउट शिफ्ट को रोकना
  • नेटवर्क देरी के दौरान उपयोगकर्ता अनुभव में सुधार करना
  • प्रोटोटाइप में सामग्री संरचना का नकली रूप से निर्माण करना
  • संवेदनशील ऐप प्रतिक्रियाशीलता में सुधार करना
  • स्क्रीन के बीच सुसंगत लोडिंग स्थिति बनाना

मुख्य विशेषताएँ

  • कस्टमाइज़ करने योग्य स्केलेटन आकृतियाँ
  • एम्बेडेड एनिमेटेड शिमर इफेक्ट
  • सूची और ग्रिड लेआउट का समर्थन
  • मौजूदा विजेट्स के साथ आसान एकीकरण
  • निर्धारित रंग और आकार
  • प्रतिक्रियाशील डिज़ाइन सुसंगतता

इनके लिए उपयुक्त

  • बेहतर लोडिंग यूएक्स की तलाश में विकासकर्ता
  • अक्सर डेटा लेने वाले ऐप्स
  • इंटरैक्टिव यूआई के प्रोटोटाइपिंग
  • दृश्य चमक को प्राथमिकता देने वाली टीमें
  • फ्रंटएंड-फोकस्ड फ्लटर प्रोजेक्ट्स
  • स्थिर प्लेसहोल्डर डिज़ाइन की आवश्यकता वाले प्रोजेक्ट्स

विचार योग्य बातें

  • प्रारंभिक बंडल आकार को थोड़ा बढ़ा सकता है
  • जटिल लेआउट के लिए हाथ से सेटअप की आवश्यकता होती है
  • एनिमेशन प्रदर्शन डिवाइस पर निर्भर करता है
  • स्थिर सामग्री के लिए उपयुक्त नहीं
  • मूल शैली के अलावा सीमित कस्टमाइज़ेशन
  • उचित लोडिंग स्थिति प्रबंधन के साथ सर्वोत्तम उपयोग

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

Flutter Skeletons

Clone of skeletons

A Flutter package for building custom skeleton widgets to mimic the page's layout while loading.

Installation

flutter pub add flutter_skeleton_ui

Examples

Items ListView (Default)
items paragraphs listview_default
ListView (Custom) ListView (Complex Cards) SkeletonTheme
listview_custom listview_cards skeleton_theme
Light/Dark modes Right-To-Left Custom Shimmer
light_dark_modes rtl custom_shimmer

All examples can be found here examples.

How To Use

Can be used by encapsulating the child widget in a Skeleton widget:

import 'package:flutter_skeleton_ui/flutter_skeleton_ui.dart';

Skeleton(
        isLoading: _isLoading,
        skeleton: SkeletonListView(),
        child: Container(child: Center(child: Text("Content"))),
      )

or directly:

Container(
    child: _isLoading
    ? SkeletonListView()
    : Container(child: Center(
                       child: Text("Content"))),
)

a SkeletonTheme can be used to set the default configs for all skeleton descendants in the tree.

SkeletonTheme(
    // themeMode: ThemeMode.light,
    shimmerGradient: LinearGradient(
        colors: [
          Color(0xFFD8E3E7),
          Color(0xFFC8D5DA),
          Color(0xFFD8E3E7),
        ],
        stops: [
          0.1,
          0.5,
          0.9,
        ],
      ),
      darkShimmerGradient: LinearGradient(
        colors: [
          Color(0xFF222222),
          Color(0xFF242424),
          Color(0xFF2B2B2B),
          Color(0xFF242424),
          Color(0xFF222222),
        ],
        stops: [
          0.0,
          0.2,
          0.5,
          0.8,
          1,
        ],
        begin: Alignment(-2.4, -0.2),
        end: Alignment(2.4, 0.2),
        tileMode: TileMode.clamp,
      ),
        child: MateriaApp(
            ...
        ),
      ),

More Customization:

ListView (Complex Cards)
listview_cards

for more complex shapes you can build your skeleton inside a SkeletonItem widget:

ListView.builder(
  physics: NeverScrollableScrollPhysics(),
  itemCount: 5,
  itemBuilder: (context, index) => Padding(
    padding: const EdgeInsets.all(8.0),
    child: Container(
      padding: const EdgeInsets.all(8.0),
      decoration: BoxDecoration(color: Colors.white),
      child: SkeletonItem(
          child: Column(
        children: [
          Row(
            children: [
              SkeletonAvatar(
                style: SkeletonAvatarStyle(
                    shape: BoxShape.circle, width: 50, height: 50),
              ),
              SizedBox(width: 8),
              Expanded(
                child: SkeletonParagraph(
                  style: SkeletonParagraphStyle(
                      lines: 3,
                      spacing: 6,
                      lineStyle: SkeletonLineStyle(
                        randomLength: true,
                        height: 10,
                        borderRadius: BorderRadius.circular(8),
                        minLength: MediaQuery.of(context).size.width / 6,
                        maxLength: MediaQuery.of(context).size.width / 3,
                      )),
                ),
              )
            ],
          ),
          SizedBox(height: 12),
          SkeletonParagraph(
            style: SkeletonParagraphStyle(
                lines: 3,
                spacing: 6,
                lineStyle: SkeletonLineStyle(
                  randomLength: true,
                  height: 10,
                  borderRadius: BorderRadius.circular(8),
                  minLength: MediaQuery.of(context).size.width / 2,
                )),
          ),
          SizedBox(height: 12),
          SkeletonAvatar(
            style: SkeletonAvatarStyle(
              width: double.infinity,
              minHeight: MediaQuery.of(context).size.height / 8,
              maxHeight: MediaQuery.of(context).size.height / 3,
            ),
          ),
          SizedBox(height: 8),
          Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: [
              Row(
                children: [
                  SkeletonAvatar(
                      style: SkeletonAvatarStyle(width: 20, height: 20)),
                  SizedBox(width: 8),
                  SkeletonAvatar(
                      style: SkeletonAvatarStyle(width: 20, height: 20)),
                  SizedBox(width: 8),
                  SkeletonAvatar(
                      style: SkeletonAvatarStyle(width: 20, height: 20)),
                ],
              ),
              SkeletonLine(
                style: SkeletonLineStyle(
                    height: 16,
                    width: 64,
                    borderRadius: BorderRadius.circular(8)),
              )
            ],
          )
        ],
      )),
    ),
  ),
);

Issues and feedback

For issues, please report here. Contributions are welcome.

श्रेणियाँ

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।