Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Have a look at our Games Focus blog post series which will show what Unity is doing for all game developers – now, next year, and in the future.
    Dismiss Notice

New UI Widgets

Discussion in 'Assets and Asset Store' started by ilih, Feb 11, 2015.

  1. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    It should be created automatically in play mode.
    Please try to add following code to the New UI Widgets / Scripts / Updater / Updater.cs file.
    Code (CSharp):
    1.         #if UNITY_EDITOR && UNITY_2019_3_OR_NEWER
    2.         [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)]
    3.         static void StaticInit()
    4.         {
    5.             proxy = null;
    6.         }
    7.         #endif
    A bug can be caused by a disabled domain reload and this code should fix it.
     
    jGate99 likes this.
  2. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    im not using that fix
    BUT, if i create a new scene and add DateScroller there it works
    If i add a DAtescroller in an existing scene canvas which is disablled, then run the scene then date scroller doesnt have that smooth animation
     
  3. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Are you sure it works only at the new scene and not only the first run after Unity start or any script change?
    I just tested with domain reload: DateScroller works only at first play and then nothing with next restarts; previous code fix it.
    upload_2022-1-5_21-10-21.png
     
  4. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    I added Fix, and here is my Domain Reload Settings
    upload_2022-1-6_10-40-52.png


    But "New UI Widgets Updater Proxy" is not appearing in my existing scene
    It does appear in entirely new scene

    Is there a script so i can add it manually?
     
  5. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Please try to update to v1.15.3b10, then you can create an empty game object with the UpdaterProxy component.
    (In previous versions additional code is required to make it work).

    If it does not help then please try run this code and show results:
    (make the script with this code and add a method to some button click)
    Code (CSharp):
    1.         public void CheckUpdater()
    2.         {
    3.             var x = Updater.Proxy as MonoBehaviour;
    4.             if (x != null)
    5.             {
    6.                 Debug.Log(x.name + "; type = " + UtilitiesEditor.GetFriendlyTypeName(Updater.Proxy.GetType()), x);
    7.             }
    8.             else
    9.             {
    10.                 Debug.Log("null or not mono; type = " + UtilitiesEditor.GetFriendlyTypeName(Updater.Proxy.GetType()));
    11.             }
    12.          
    13.             var t = x.transform.parent;
    14.             while (t != null)
    15.             {
    16.                 Debug.Log(t.name, t);
    17.                 t = t.parent;
    18.             }
    19.         }
     
    jGate99 likes this.
  6. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    I'll check this few hours

    Meanwhile I have another issue with list performance
    if list have small items and they appear in mobile like 6 items (due to smaller height) their scrolling is good
    However if i have big items with variable height, which appear only 1.9 (2) on mobile screen then scrolling is slow

    How can i increase scrolling speed where i know list will have large items?
     
  7. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Speed is controlled by ListView.ScrollRect.ScrollSensitivity.
     
  8. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
  9. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    jGate99 likes this.
  10. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    jGate99 likes this.
  11. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi
    Any possibility of using DoTween for animation?
     
  12. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi @ilih

    Please check this, this is independent date scroller, but it still changes AM/PM if we change hours
    https://we.tl/t-BfC3UQYJ2w

    How do i keep AM PM independant too
     
  13. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Currently no, I'll check if it will be possible to add support.
    But it does not solve the performance problem.

    I'll check it.
     
  14. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Secondly how do i set min max date?
     
  15. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Use DefaultDateMin and DefaultDateMax fields.

    If you need to set only date then use DateTimeScrollerSeparate and set DefaultDateMin and DefaultDateMax fields of nested DateScroller
     
    jGate99 likes this.
  16. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Is there an example of ListView which on selection expands with animation?
     
  17. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Is expand mean item size increases and additional game objects become visible?
     
  18. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    yes, so lets say list item is variable heiight and on selection that item becomes bigger height wise , some objects will become visible, but rather than immediatly i want item to resize in animatied way
     
  19. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    You can use this script (works with any ListView/TileView):
    Code (CSharp):
    1. namespace Issues
    2. {
    3.     using System.Collections;
    4.     using System.Collections.Generic;
    5.     using UIWidgets;
    6.     using UnityEngine;
    7.  
    8.     public class ListViewItemResize : MonoBehaviour
    9.     {
    10.         [SerializeField]
    11.         public ListViewBase ListView;
    12.  
    13.         [SerializeField]
    14.         public Vector2 DefaultSize = new Vector2(212, 36);
    15.  
    16.         [SerializeField]
    17.         public Vector2 SelectedSize = new Vector2(212, 72);
    18.  
    19.         [SerializeField]
    20.         public AnimationCurve Curve = AnimationCurve.EaseInOut(0f, 0f, 0.5f, 1f);
    21.  
    22.         [SerializeField]
    23.         public bool UnscaledTime = true;
    24.  
    25.         Dictionary<int, IEnumerator> Animations = new Dictionary<int, IEnumerator>();
    26.  
    27.         protected void Start()
    28.         {
    29.             ListView.OnSelect.AddListener(ProcessSelected);
    30.             ListView.OnDeselect.AddListener(ProcessDeselected);
    31.         }
    32.  
    33.         void ProcessSelected(int index, ListViewItem instance)
    34.         {
    35.             StartAnimation(instance, SelectedSize);
    36.         }
    37.  
    38.         void ProcessDeselected(int index, ListViewItem instance)
    39.         {
    40.             StartAnimation(instance, DefaultSize);
    41.         }
    42.  
    43.         void StartAnimation(ListViewItem instance, Vector2 size)
    44.         {
    45.             if (instance == null)
    46.             {
    47.                 return;
    48.             }
    49.  
    50.             StopAnimation(instance.Index);
    51.             var animation = ResizeAnimation(instance, size);
    52.             Animations[instance.Index] = animation;
    53.             StartCoroutine(animation);
    54.         }
    55.  
    56.         void StopAnimation(int index)
    57.         {
    58.             IEnumerator animation;
    59.             if (Animations.TryGetValue(index, out animation))
    60.             {
    61.                 StopCoroutine(animation);
    62.                 Animations.Remove(index);
    63.             }
    64.         }
    65.  
    66.         IEnumerator ResizeAnimation(ListViewItem instance, Vector2 size)
    67.         {
    68.             instance.DisableRecycling = true;
    69.  
    70.             var current = instance.RectTransform.rect.size;
    71.  
    72.             var length = Curve[Curve.length - 1].time;
    73.             var start = UtilitiesTime.GetTime(UnscaledTime);
    74.             var time = 0f;
    75.             do
    76.             {
    77.                 time = UtilitiesTime.GetTime(UnscaledTime) - start;
    78.  
    79.                 var lerp_size = Vector2.Lerp(current, size, Curve.Evaluate(time / length));
    80.  
    81.                 instance.RectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, lerp_size.x);
    82.                 instance.RectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, lerp_size.y);
    83.                 yield return null;
    84.             }
    85.             while (time < length);
    86.  
    87.             instance.DisableRecycling = false;
    88.  
    89.             Animations.Remove(instance.Index);
    90.         }
    91.     }
    92. }
     
  20. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Shouldnt i use states like OnStateSelected? etc
     
  21. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Yes, you can use StateSelected() to start animation and StateDefault()/StateHighlighted() to stop animation.
    But the downside is that you need to override those methods for each ListView.
     
    jGate99 likes this.
  22. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Fixed in v1.15.3b14
     
    jGate99 likes this.
  23. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    v1.15.3 released

    Changelog:
    • COMPATIBILITY-BREAKING CHANGES: LateUpdateAdd and LateUpdateRemove methods of IUpdaterProxy renamed to AddLateUpdate and RemoveLateUpdate, added RemoveRunOnce and RemoveRunOnceNextFrame methods
    • ContextMenu: added helper script OpenContextMenu to open the menu by clicking on non-UI gameobject, requires PhysicsRaycaster and/or PhysicsRaycaster2D on the main camera
    • DateTimeScroller and DateScroller: fixed AMPM change on hours scroll if IndependentScroll enabled
    • EasyLayout: added optional movement and resize animation support; warning: can decrease performance
    • Effects: RingEffect, RippleEffect, LinesDrawer, SnapGridDrawer no more requires enabled TexCoord1 channel on Canvas
    • ListView: fixed item instance visibility if ListViewItem.DisableRecycling enabled
    • ListView: added OnNavigate event; called after navigating to the other item instance with keyboard or gamepad
    • ListView: added ItemsEvents.MovedToCache event
    • ListView: FixHighlightItemUnderPointer option now obsolete
    • ListView: added KeepHighlight option to keep item highlight on pointer enter until will be selected another gameobject
    • ListView: fixed wrong events processing order in some cases
    • ListViewItem: added StopSelectableAnimations() method to ListViewItem class
    • Notification: added OpenedNotifications, AllNotifications and InactiveNotifications properties
    • Picker: added OpenedPickers, AllPickers, and InactivePickers properties
    • Spinner: fixed bug with Unity Text and OnKeyDown validation
    • Tabs: added EventSystemSelectActiveHeader option
    • Tabs: added ImmediateSelect option
    • Tabs: added NextTab() and PreviousTab() methods
    • TimeScroller: added SingleAMPM property to disable multiple AM PM options in scroll block
    • TreeNode: added HasNodes and HasVisibleNodes properties
    • TreeView: added ToggleOnNavigate option, if enabled expand node on move right event and collapse node on move left event
    • TreeView: added ToggleOnSubmitCancel option, if enabled expand node on submit event and collapse node on cancel event
     
    hopeful and jGate99 like this.
  24. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi @ilih
    I'm using paginator in fully responsive way where each silde will be responsive (stretched to sides), but this is what happening
    https://we.tl/t-SeKKmISzIY
     
  25. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    You need to change the slides size on ScrollRect resize.
    You can use attach the following script to the ScrollRect.
    Code (CSharp):
    1.     using UnityEngine;
    2.     using UnityEngine.UI;
    3.     using UIWidgets;
    4.  
    5.     [RequireComponent(typeof(ScrollRect))]
    6.     public class ScrollRectContentResize : MonoBehaviour
    7.     {
    8.         ResizeListener resizeListener;
    9.  
    10.         ScrollRect scrollRect;
    11.  
    12.         protected ScrollRect ScrollRect
    13.         {
    14.             get
    15.             {
    16.                 if (scrollRect == null)
    17.                 {
    18.                     scrollRect = GetComponent<ScrollRect>();
    19.                 }
    20.  
    21.                 return scrollRect;
    22.             }
    23.         }
    24.  
    25.         protected virtual void Start()
    26.         {
    27.             if (resizeListener == null)
    28.             {
    29.                 resizeListener = Utilities.GetOrAddComponent<ResizeListener>(this);
    30.             }
    31.  
    32.             resizeListener.OnResize.AddListener(Resize);
    33.         }
    34.  
    35.         protected virtual void OnDestroy()
    36.         {
    37.             if (resizeListener != null)
    38.             {
    39.                 resizeListener.OnResize.RemoveListener(Resize);
    40.             }
    41.         }
    42.  
    43.         void Resize()
    44.         {
    45.             var size = (ScrollRect.transform as RectTransform).rect.size;
    46.  
    47.             var content = ScrollRect.content;
    48.             for (int i = 0; i < content.childCount; i++)
    49.             {
    50.                 var rt = content.GetChild(i) as RectTransform;
    51.                 if (ScrollRect.horizontal)
    52.                 {
    53.                     rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, size.x);
    54.                 }
    55.  
    56.                 if (ScrollRect.vertical)
    57.                 {
    58.                     rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, size.y);
    59.                 }
    60.             }
    61.         }
    62.     }
     
    jGate99 likes this.
  26. kurismakku

    kurismakku

    Joined:
    Sep 18, 2013
    Posts:
    66
    Hi there, amazing asset!

    I'm wondering how I can initialize item added to TreeView node.

    In case 1) I'm using TreeView DataSource and referencing the prefab, and that works well.
    In case 2) I'm trying to instantiate that same prefab, but the events and references are properly set automatically.

    UILayerTabButton newUILayerTabButton = GameObject.Instantiate<UILayerTabButton>(prefabUILayerTabButton);

    In the same class I also have TreeView reference, how can I connect the two through code properly so drag and drop are working?

    Thanks!
     
  27. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi @ilih
    Please expose these as virtual to ListViewBase
    DisplayedIndexFirst/Last

    so i can easily get them via Owner.DisplayedIndexFirst
     
  28. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Not sure what you mean by "initialize item", if you want to add items to TreeView then you can use such code:
    Code (CSharp):
    1. // add node
    2. var item = new TreeViewItem("Added Item");
    3. var node = new TreeNode<TreeViewItem>(item, new ObservableList<TreeNode<TreeViewItem>>(), nodeIsExpanded: true);
    4. Tree.Nodes.Add(node);
    5.  
    6. // add nested node
    7. var nested_item = new TreeViewItem("Nested Item");
    8. var nested_node = new TreeNode<TreeViewItem>(sub_item, new ObservableList<TreeNode<TreeViewItem>>(), nodeIsExpanded: true);
    9. node.Nodes.Add(nested_node);
    10. // same as
    11. // Tree.Nodes[Tree.Nodes.Count - 1].Nodes.Add(nested_node);
    Do you want to add drop support to
    UILayerTabButton
    class?
    You need to implement
    IDropSupport<TreeNode<TreeViewItem>>
    at
    UILayerTabButton
    or create a new class with the same interface.
    Code (CSharp):
    1. using UIWidgets;
    2. using UnityEngine;
    3. using UnityEngine.EventSystems;
    4.  
    5. public class UILayerTabButton : ..., IDropSupport<TreeNode<TreeViewItem>>
    6. {
    7.    // ... other code
    8.  
    9.    public void Drop(TreeNode<TreeViewItem> node, PointerEventData eventData)
    10.    {
    11.       // do something with dropped item
    12.       Debug.Log("Dropped item: " + node.Item.Name);
    13.    }
    14.  
    15.    public bool CanReceiveDrop(TreeNode<TreeViewItem> node, PointerEventData eventData)
    16.    {
    17.       return true;
    18.    }
    19.  
    20.    public void DropCanceled(TreeNode<TreeViewItem> node, PointerEventData eventData)
    21.    {
    22.    }
    23. }
     
  29. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    You can add following code to the
    ListViewBase
    and add
    override
    to those properties at
    ListViewCustomBase
    :
    Code (CSharp):
    1.         /// <summary>
    2.         /// Gets the first displayed index.
    3.         /// </summary>
    4.         /// <value>The first displayed index.</value>
    5.         public virtual int DisplayedIndexFirst
    6.         {
    7.             get
    8.             {
    9.                 return 0;
    10.             }
    11.         }
    12.  
    13.         /// <summary>
    14.         /// Gets the last displayed index.
    15.         /// </summary>
    16.         /// <value>The last displayed index.</value>
    17.         public virtual int DisplayedIndexLast
    18.         {
    19.             get
    20.             {
    21.                 return instances.Count - 1;
    22.             }
    23.         }
     
  30. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi @ilih,
    On actual device, ScrollRectPaginator with Scroll View Horizontal doesnt work as expected, it gets stuck between 2 slides
     
  31. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi @ilih
    Listview has "Scrolling" bool, how can i get scrollingSpeed (so i know whether its fast or going to end soon) in subclass?
     
  32. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    What are ScrollRectPaginator settings?

    ListView.ScrollRect.velocity
     
    jGate99 likes this.
  33. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Settings:
    upload_2022-1-26_21-44-22.png

    upload_2022-1-26_21-46-31.png

    upload_2022-1-26_21-47-19.png


    I want it to be 100% responsive (each slide is also fully stretched)
    Thanks

    On device its not accurately on centre
     
  34. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Please try to add line
    Resize();
    to the end of
    Start()
    method in ScrollRectContentResize:
    Code (CSharp):
    1.         protected virtual void Start()
    2.         {
    3.             if (resizeListener == null)
    4.             {
    5.                 resizeListener = Utilities.GetOrAddComponent<ResizeListener>(this);
    6.             }
    7.             resizeListener.OnResize.AddListener(Resize);
    8.  
    9.            Resize();
    10.         }
     
    jGate99 likes this.
  35. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi @ilih
    Paginator sometime show extra dot, even though there is no extra slide
    It happens in editor and rarely, but it does happen
     
  36. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    I'll check it, probably a rounding error.
     
    jGate99 likes this.
  37. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Please check v1.15.4b1, it should be fixed.
     
    jGate99 likes this.
  38. DavidLe360

    DavidLe360

    Joined:
    Dec 24, 2018
    Posts:
    123
    Hi, please add the possibility to have tmp_InputField, instead of Text or TextMeshProUGUI, as cell for tables.

    Some think like this:
    upload_2022-1-28_18-51-17.png

    upload_2022-1-28_18-53-36.png

    Cheer
     
  39. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    You can do it without any problem, there are no limitations on cells type.

    Even support to the existing examples can be easily added.
    It just requires a new DefaultItem component with InputsFields:
    Code (CSharp):
    1. namespace UIWidgets.Examples
    2. {
    3.     using UIWidgets;
    4.     using UnityEngine;
    5.     using UnityEngine.UI;
    6.  
    7.     public class InputFieldCells : SimpleTableComponent
    8.     {
    9.         [SerializeField]
    10.         public InputFieldAdapter InputField1;
    11.  
    12.         [SerializeField]
    13.         public InputFieldAdapter InputField2;
    14.  
    15.         [SerializeField]
    16.         public InputFieldAdapter InputField3;
    17.  
    18.         protected override void GraphicsForegroundInit()
    19.         {
    20.             if (GraphicsForegroundVersion == 0)
    21.             {
    22.                 Foreground = new Graphic[] { };
    23.                 GraphicsForegroundVersion = 1;
    24.             }
    25.         }
    26.  
    27.         // Note: ObjectsToResize should be marked "virtual" at SimpleTableComponent
    28.         public override GameObject[] ObjectsToResize
    29.         {
    30.             get
    31.             {
    32.                 return new[]
    33.                 {
    34.                     InputField1.transform.parent.gameObject,
    35.                     InputField2.transform.parent.gameObject,
    36.                     InputField3.transform.parent.gameObject,
    37.                 };
    38.             }
    39.         }
    40.  
    41.         // Note: SetData() should be marked "virtual" at SimpleTableComponent
    42.         public override void SetData(SimpleTableItem item)
    43.         {
    44.             InputField1.text = item.Field1;
    45.             InputField2.text = item.Field2;
    46.             InputField3.text = item.Field3;
    47.         }
    48.     }
    49. }
    • replace
      SimpleTableComponent
      component with
      InputFieldCells
      at DefaultItem gameobject
    • set created
      InputFieldCells
      component as new
      SimpleTable.DefaultItem
    • replace cells with InputFields gameobjects
    • add InputFields references to
      InputFieldCells
      component
    • copy
      LayoutElement
      settings from header to the InputFields
    Maybe you also want to change InputFields Transition settings because the background is white by default.
    upload_2022-1-29_4-47-20.png
     
    DavidLe360 likes this.
  40. DavidLe360

    DavidLe360

    Joined:
    Dec 24, 2018
    Posts:
    123
    Thanks for the quick reply and guide :).

    I found the listview 'LVInputFields' scene witch use inputfield as cell. It's like a table (it has 3 columns).
    upload_2022-1-28_21-6-0.png

    But, the disadvantage is: we can not click on a column header to make it sort, etc.

    So I think I'm gonna try your solution
     
  41. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Sorting is done with
    SortBy{Field}()
    methods added to the ListView class and those methods attached to buttons at header cells.
    SteamSpyView is a sample of how it can be done.
    upload_2022-1-29_5-51-31.png
     
    DavidLe360 likes this.
  42. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi @ilih
    Date Time Scroller is too sensitive and overshoots all the time, its really hard to select a value both in editor and on device when those values are close. like you are on 2011 and you want to select 2012 then it becomes a problem
    If not clear i can send a recording
     
    Last edited: Jan 30, 2022
  43. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Please try to reduce the ScrollSensivity of nested scrollers.
     
    jGate99 likes this.
  44. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    I'll try and let you know, meanwhile lets say i have set min max datetime to DateTimScroller
    Now i want to "unset" that, so it is back to normal. what should i do?
     
  45. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Code (CSharp):
    1. DateTimeScroller.DateMax = System.DateTime.MaxValue;
    2. DateTimeScroller.DateMin = System.DateTime.MinValue;
     
    jGate99 likes this.
  46. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi @ilih
    I'm not sure if i mentioned it earlier, BUT listview scrolls slower jittery and laggy on big items when those big items are lets say 3-4 in iPhone. But less height items scrolls faster (when they are like 6-10.
    Please advise
     
  47. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    Can you make two videos: one with scrolling big items and the other with scrolling small items?
    Are ListViews display the same data and only items size different?
     
  48. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,722
    Hi @ilih
    do you have iPhone? because that problem is clearly visible on iPhone and not Android
     
  49. ilih

    ilih

    Joined:
    Aug 6, 2013
    Posts:
    1,211
    No.
     
  50. Arcanor

    Arcanor

    Joined:
    Nov 4, 2009
    Posts:
    283
    I'm using unity 2020.3.24f1, and New UI Widgets 1.15.3f2.

    When I select my data class and Generate Widgets, I get the following error:
    Code (CSharp):
    1. Assets\_Custom\Scripts\WidgetsAcCatData\Scripts\ComparersAcCatData.cs(148,38): error CS0315: The type 'AcCatData.Rarity' cannot be used as type parameter 'T' in the generic type or method 'UtilitiesCompare.Compare<T>(T, T)'. There is no boxing conversion from 'AcCatData.Rarity' to 'System.IComparable<AcCatData.Rarity>'.
    The type AcCatData.Rarity is an enum, as follows:
    Code (CSharp):
    1. public enum Rarity { Common, Rare, UltraRare, unknown }
    2. public Rarity catRarity;
    Do you have any suggestions as to how I can complete the widget generation process without error?

    Thanks in advance!
     
unityunity