Daha çox

FlexViewer 2.1 - widget qrupu üçün sürüşmə əlavə edin


Flex versiyası 2.1 üçün ArcGIS Viewer istifadə edən bir saytım var. Başlıqda 25 maddədən ibarət bir widget qrupum var. Siyahı o qədər uzundur ki, brauzer pəncərəsinin altından kənara çıxır və son 5-6 elementi görə bilmirəm. Maddələr arasında hərəkət edə bilmək üçün widget qrupuna sürüşmə qabiliyyəti əlavə etmək mümkündürmü?

Sağol Tim


Robert Scheitlin, ArcGIS Viewer for Flex forumunda bir cavab verdi. Link:

http://forums.arcgis.com/threads/36322-FlexViewer-2.1-Add-scroll-for-widgetgroup

Onun cavabı:

"Əlbətdə bu kod blokunu tapın və HeaderControllerWidget.mxml-də qırmızı rəngdə göstərilən dəyişiklikləri edin:"

    

Qırmızı burada görünmədiyi üçün əlavə etməyim lazım idihissələri və widgetList xüsusiyyətlərini dəyişdirinwidth = "{widgetListDG.width + 29}" height = "300".


XNA GUI: Bir & # 39 sürüşmə bölməsi & # 39 widgetı yaratmaq

Sadə bir GUI sistemi yaratmağa çalışıram və hal-hazırda bir sürüşmə çubuğu ilə bir mətn sahəsinin necə tətbiq ediləcəyini düşünürəm. Başqa sözlə, mətn görünüş sahəsinə sığmayacaq qədər böyükdür. Bunu necə edəcəyimi öyrənmək istəyirəm, buna görə onsuz da haddelenmiş bir API istifadə etmirəm.

Mətn bir toxumanın bir hissəsi olsaydı, bunu edilə biləcəyinə inanıram, ancaq oyunda çox fərqli bir dialoq olsaydı, bu bahalı görünür.

Tez bir toxuma yaratmağı və ona yazmağı araşdırdım, amma heç bir şey tapmadım.

Təklif olunan hər hansı strategiya təqdir ediləcəkdir. İnanıram ki, aşağıya doğru gedir: toxumalı mətn və necə? Və ya düşünmədiyim bir şey.


3 Cavablar 3

Nəhayət bir neçə saat kodlaşdırdıqdan sonra başa düşdüm (Magento 2 ilə yeni tanışam)

Etməli olduğunuz tək şey bir asılılıq inyeksiyasıdır

Yenidən yazmaq istədiyimiz _prepareForm metodu ilə bir köməkçi yaradın:

$ config ['add_widgets'] və (əgər istəyirsinizsə) $ config ['add_variables'] olaraq təyin etdik doğru. Dönüş ifadəsini və işinizi köməkçinizlə tənzimləyin.

Yaradın / redaktə edin di.xml və bir üstünlük müəyyənləşdirin:

Bunun ən yaxşı və uyğun bir yol olub olmadığını bilmirəm, amma əslində CE 2.0.4-də işləyir.

Ön çıxışınıza filtr metodları əlavə etməyi unutmayın.

Magento 2.1.x-də (və ehtimal ki, 2.2+ da) bunu necə edəcəyinizi düşünən hər kəs. Budur:

Öz xüsusi modulunuzu yaradın və içərisindəki aşağıdakı kodla (ən azı) view / adminhtml / ui_component / category_form.xml əlavə edin:

Bu, bir kateqoriyaya düzəliş etdiyiniz zaman dəyişən və widget düymələrini təsvir sahəsinə əlavə edəcəkdir. Lakin widget / dəyişənlərin də ön hissədə göstərilməsi lazımdır, əks halda widget etiketlərinin ön hissədə mətn kimi göründüyünü görə bilərsiniz (bu anujeet tərəfindən verilən sual idi).


add_filter () və add_action () hər hansı bir plagin yüklənmədən əvvəl mövcuddur. Beləliklə, hər ikisini də eklentinizin və ya mövzunuzun birinci sətrində istifadə edə bilərsiniz.

Okunabilirlik üçün əsas sənədinizin ən üst hissəsindəki əməliyyatları və qeydləri süzgəcdən keçirməyi məsləhət görürəm:

Bu qaydanın istisnaları var:

    . Bu nümunədə, yalnız wp_nav_menu_objects üçün ilk filtr çağırıldıqda bağlanma üçün bir əməliyyatı qeyd edirəm. Beləliklə, ikinci zəng yenidən birincisi ilə eyni vaxtda qeyd edilə bilməz.

OOP tərzi. Bəzən geri çağırışları qeyd etmədən əvvəl sinif üzvləri qurmalısınız. Çox bənzər bir nümunədən istifadə edirəm ...

… Sinifin hazırlanmasının başqa bir plagin tərəfindən dayandırıla biləcəyini və bir uşaq sinifinin daha çox və ya fərqli filtrləri və əməliyyatları qeyd edə biləcəyini görürük.

Qruplaşdırma ilə yanaşı bir addım daha irəli gedə və digər inkişaf etdiricilər üçün fərdiləşdirmələri asanlaşdırmaq üçün xüsusi bir fəaliyyət təklif edə bilərsiniz.
Budur üzərində işlədiyim bir mövzudan nümunə:

Son sətir vacibdir: Bir uşaq mövzusu və ya bir plagin indi t5_theme_hooks_registered hərəkətinə qoşula bilər və əvvəlki çəngəlin qeydini silə bilər. Bu prioritetlərlə mübarizə aparmaqdan xilas olacaq və mən dəyişməkdə sərbəstəm mənim geri çağırma prioritetləri.

Ancaq yalnız mənbə kodu sifarişinə etibar etməyin. Doc blokunuzda istifadə etdiyiniz qarmaqları sənədləşdirin. Bunun üçün xüsusi bir wp-çəngəl etiketi istifadə edirəm. Eyni mövzudan zəncirlənmiş qarmaqlarla bir nümunə:

Bu funksiyaların harada çağrıldığını görmək üçün yuxarıya keçmək lazım deyil, sənəd blokuna bir baxış kifayətdir. Bunun üçün bir az səy lazımdır, çünki həm sinxronizasiyanı, həm qeydiyyatı, həm də şərhinizi saxlamalısınız, lakin uzun müddətdə bu, dəyərli vaxta qənaət edir.


Bir demo widgetı

Daxili işləri daha yaxşı göstərmək üçün çox sadə bir demo vidjet yazdım:

İnşaatçıya diqqət yetirin: 't5_demo_widget' bu widget üçün identifikator olan $ id_base. Ekran görüntüsündə gördüyünüz kimi onun arqumentləri widget_t5_demo_widget seçimində saxlanılır. Bütün xüsusi vidcetləriniz bu şəkildə qəbul ediləcəkdir. Adı tahmin etmək lazım deyil. Və bəri Sən widgetlarınızı yazmışdınız (ehtimal ki) sinifinizin '$ instance parametrlərindən bütün arqumentləri bilirsiniz.


İlk dizayn istifadə baxımından ən pisdir, çünki ikon birmənalı deyil və istifadəçinin onu görməməsi üçün real bir ehtimal var. İstifadəçi açılır menyuya diqqət yetirəcəkdir (yəni oxumaq) və ikonanı fiziki cəhətdən qeyri-mümkün olduğu halda işləyə bilməz. İstifadəçiyə ya təsadüfən, ya da savadlı bir təxminlə ikonanı tapacağına inanırsınız.

İkinci dizayn bir az daha istifadə edilə bilər, çünki Əlavə et seçimi hələ də eyni məhdudiyyətlərə sahib olsa da daha qabarıqdır. Açılan açarın nə qədər geniş olduğuna və Əlavə et seçiminin nə dərəcədə məşhur olmasına bağlıdır.

Üçüncü dizayn, ehtimal ki, üçünün ən təhlükəsizidir, çünki istifadəçinin ən azı mövcud siyahını taramasına zəmanət verir. Ən gözəl deyil, amma ən intuitivdir.

Dördüncü bir seçim, istifadəçinin hər ikisini görmə şansının çox olduğu açılan menyunun altına mətn bağlantısını qoymaqdır. Mətn bağlantısını söndürə və sonra istifadəçi açılan menyunu aktivləşdirdikdən sonra onu aktivləşdirə bilərsiniz.

@ Tim-huynh-in cavabı və @monkeyzeus-un ağıllı rəyinə əsasən, mənim iki sentim.

  1. Dizayn 1 birmənalı deyil: istifadəçi, ipucunu tetiklemeden əvvəl "bu qrupu bir şeyə əlavə et" deməkdir.
  2. Dizayn 2 daha yaxşıdır, amma yenə də savadsız bir istifadəçinin @ tim-huynh-in dediyi kimi "yeni qrup" seçiminin diqqət mərkəzinin sağında olacağını təxmin edə bilməyəcəyinə razıyam.
  3. Dizayn 3 gözəl bir başlanğıcdır:
    1. "yeni qrup" seçimi istifadəçinin diqqət mərkəzindədir,
    2. yenisini yaratmasına imkan vermədən əvvəl istifadəçiyə mövcud qruplar / etiketlər / seçimlər barədə ümumi məlumat vermək həmişə yaxşıdır,
    3. yenə də, bu dizayn uzun siyahılarda uğursuz olur, çünki "Yeni Qrup" düyməsinə siyahıdan çox aşağıda yerləşdiriləcək (bəzi hallarda ekran hündürlüyünü aşa bilər).

    Təklif etdiyim həll yolu, Gmail-dəki ağıllı adamların aşağıda göstərilən etiket düyməsinə etdiyi kimi inkişaf etmiş bir seçmə widgetı tətbiq etməkdir (İtalyan şərtlərinə görə üzr istəyirik. "Etichetta" "Etiket" deməkdir)

    • etiket siyahısı kaydırılabilir və sabit bir hündürlüyə malikdir, bu da "Yeni etiket" i təmin edir (Şəkildə "Crea nuova", "+" işarəsi burada yaxşı olardı) həmişə görünən düymə,
    • siyahı çox uzundursa, istifadəçinin axtarış zolağı var axtardığını tez bir zamanda tapmaq üçün (rəfiqəmin 70+ etiketi var və hətta sürüşməyi düşünmür).

    Birinci və üçüncü variantların necə istifadə olunacağına görə hər iki imkan olduğunu düşünürəm.

    Əgər istifadəçiyə çox tez-tez əşyalar əlavə etmək lazım gələcəksə, + düyməsini mütləq bu ikisindən üstün tutmaq lazımdır, çünki "yeni əlavə etmək" üçün hər dəfə siyahıdan keçmək əsəbiləşəcəkdir. Çox uzun bir maddə siyahısı ola bilərsə, bu da "yeni əlavə et" seçiminə çatmağın narahatlığını artıracaqdır.

    Tövsiyə edirəm ilk seçim ilə gedirik istifadəçilərin tapılmadığı təqdirdə siyahıya yeni bir maddə əlavə edə biləcəyi aydın bir vizual göstəricidir. Bunu necə edə biləcəyinizə dair bir nümunədir

    Üçüncü seçim ilə mübarizə istifadəçinin yeni bir maddə əlavə etmək seçimini tapmasından əvvəl siyahının altına keçməsini gözlədiyinizdir. Siyahınızdakı maddələr əlifba sırası ilə düzəldilmişsə və istifadəçi əlifba sırası ilə tarayırsa, xüsusi əlifba bitdikdən sonra istifadəçi daha da taraya bilər

    The ikinci seçim də işləyə bilər lakin bir əlaqə konsepsiyası güclü bir hərəkət çağırışı deyil, açılan siyahı baxımından göz ardı edilə bilər.

    2-ci seçimlə gedərdim çünki bu hərəkəti açıq şəkildə ifadə edir və qeyri-müəyyənlik azdır və ya yoxdur. Ya açılır siyahıdan mövcud qruplardan birini seçirsiniz, ya da öz qrupunuzu yaradırsınız. İstifadəçi təcrübəsi bundan daha sadə ola bilməz!

    1-ci seçim də işləyə bilər, lakin istifadəçilər adından bir az hərəkət tələb edir. Vasitə tövsiyəsinin yalnız bir siçan siçanı ilə göstərildiyini düşünürəm və beləliklə 2-ci variantı sadəliyi ilə qazanmıram.

    Bununla birlikdə, bu yanaşma dizayn və estetik baxımdan kənar ola bilər. Kiçik bir sadə (+) düymə mətn bağlantısından daha yaxşı görünür (və tətbiqin beynəlmiləlləşməsi halında, istifadəçi interfeysi mətn simlərinizin nə qədər olacağını və bir xətt qırıb harada bir qarışıqlıq yarada biləcəyini heç bilmirsiniz).

    Belə ki işə yarada bilmək üçün əvvəldə ipucu göstərə bilərsiniz, lakin istifadəçi bir və ya iki dəfə yeni bir qrup yaratdıqda onu daim gizlədin və beləliklə, bu düymənin nə etdiyini bilir.

    Söyləməyə ehtiyac yoxdur, bunun üçün bəzi istifadəçi seçimləri / məlumatların saxlanması funksiyaları tələb olunur (bəlkə də bütün müasir brauzerlərdə əldə edilə bilən localStorage http://caniuse.com/#feat=namevalue-storage və ya daha çox istifadəçinin tətbiqinizdən bir proqramdan istifadə etməsi gözlənilirsə) tək cihaz / pc sonra arxada saxlayın.)

    Üçüncü seçim açıq şəkildə hamısından daha pisdir. İstifadəçi lüzumsuz bir funksionallığın vacib bir hissəsini kəşf etməlidir, bu qrupların siyahısı böyükdürsə və sürüşmə tələb edərsə çox çətin ola bilər.

    Bunu da əlavə etmək istərdim Üçüncü seçim siyahının ölçüsündən asılı olacaq. Açılan siyahı çox uzundursa, proqnozlaşdırıcı bir axtarış barədə düşünmək və bu tapılmadıqda "Yeni Qrup əlavə et" üçün bu termini istifadə etmək istəyə bilərsiniz.

    Bu yüksək həcmli bir səhifədirsə, bunu dəqiq tapmaq üçün analitik vasitələrlə araşdırmağa dəyər.

    İdeal olaraq istifadəçi bazasının gözləntiləri üçün ən yaxşı cavabı təyin etmək üçün veb analitik istifadə edərək istifadəçilərinizi araşdıra bilərsiniz. clicky.com, məsələn, maddə qrupunun üstündəki forma elementi ilə maddə qrupu sahəsindən sonra forma elementi arasındakı hər müddət arasında vaxt keçirməyə imkan verir. Sonra analitik zamanlama diaqramına baxırsınız və istifadəçilərin "maddə qrupu" sahəsinə sərf etdikləri müddətin histoqramını edirsiniz.

    Daha sonra birini seçmək, qurmaq və dizayn qüsurlarının şiddətini yoxlamaq istəsəniz, mütləq A / B quruluşu ilə bu zamanlama analizini aparmaq lazım deyil. daha sonra, "yeni kateqoriya əlavə et" seçimini seçən və ardıcıllıqla istifadə olunmadığını yoxlayan insanların histoqramına baxırsınız (əvvəlcə bunu görmədilər və daha sonra həmin form elementinə qayıtmaq məcburiyyətində qaldılar). Kifayət qədər böyük bir seçmə ölçüsünüz varsa, zamanlama histoqramında fərqli zirvələri görməlisiniz ki, hər zirvə fərqli bir istifadəçi modelinin funksionallığı tanıma vaxtını təmsil edir. Əyləncəli bir məşq olaraq, zamanlama histogramındakı zirvələrə baxaraq hər bir zirvəni fərqli bir istifadəçi zehni modelinə təyin etməklə istifadəçilər bazanızın fərqli qruplarını profilləşdirə bilərsiniz. tamaşaçı.


    Videoya baxın: Bayılda sürüşmə: sakinləri hansı təhlükə gözləyir? (Oktyabr 2021).