2 using Tizen.NUI.BaseComponents;
4 namespace Tizen.NUI.Samples
6 public class ScrollableBaseOutOfBoundSample : IExample
9 private Components.ScrollableBase horizontalScrollableBase = null;
10 private TextLabel[] horizontalItems;
12 private Components.ScrollableBase verticalScrollableBase = null;
13 private TextLabel[] verticalItems;
15 public void Activate()
17 Window window = NUIApplication.GetDefaultWindow();
20 Size = new Size(1920, 1080),
21 BackgroundColor = new Color(0.7f, 0.9f, 0.8f, 1.0f),
23 root.Layout = new LinearLayout()
25 LinearOrientation = LinearLayout.Orientation.Vertical,
29 CreateHorizontalScrollableBase();
31 CreateVerticalScrollableBase();
34 private void CreateHorizontalScrollableBase()
36 horizontalScrollableBase = new Components.ScrollableBase()
38 Size = new Size(400, 300),
39 ScrollingDirection = Components.ScrollableBase.Direction.Horizontal,
40 HideScrollbar = false,
42 horizontalScrollableBase.ScrollOutOfBound += OnHorizontalScrollOutOfBound;
44 horizontalItems = new TextLabel[5];
45 for (int i = 0; i < 5; i++)
47 horizontalItems[i] = new TextLabel
49 Position = new Position(i * 200, 0),
50 Size = new Size(200, 300),
52 TextColor = Color.Black,
56 horizontalItems[i].BackgroundColor = Color.White;
60 horizontalItems[i].BackgroundColor = Color.Cyan;
62 horizontalScrollableBase.Add(horizontalItems[i]);
64 root.Add(horizontalScrollableBase);
67 private void OnHorizontalScrollOutOfBound(object sender, Components.ScrollOutOfBoundEventArgs e)
69 if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Left)
71 horizontalItems[0].Text = "Reached at the left.";
73 else if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Right)
75 horizontalItems[4].Text = "Reached at the right.";
79 private void CreateVerticalScrollableBase()
81 verticalScrollableBase = new Components.ScrollableBase()
83 Size = new Size(400, 300),
84 ScrollingDirection = Components.ScrollableBase.Direction.Vertical,
85 EnableOverShootingEffect = true,
86 HideScrollbar = false,
88 verticalScrollableBase.ScrollOutOfBound += OnVerticalScrollOutOfBound;
90 verticalItems = new TextLabel[5];
91 for (int i = 0; i < 5; i++)
93 verticalItems[i] = new TextLabel
95 Position = new Position(0, i * 100),
96 Size = new Size(400, 100),
98 TextColor = Color.Black,
102 verticalItems[i].BackgroundColor = Color.White;
106 verticalItems[i].BackgroundColor = Color.Cyan;
108 verticalScrollableBase.Add(verticalItems[i]);
110 root.Add(verticalScrollableBase);
113 private void OnVerticalScrollOutOfBound(object sender, Components.ScrollOutOfBoundEventArgs e)
115 if (e.Displacement > 100)
117 if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Down)
119 verticalItems[0].Text = $"Reached at the top, panned displacement is {e.Displacement}.";
122 else if (0 - e.Displacement > 100)
124 if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Up)
126 verticalItems[4].Text = $"Reached at the bottom, panned displacement is {e.Displacement}.";
131 public void Deactivate()
133 for (int i = 0; i < 5; i++)
135 if (verticalItems[i] != null)
137 verticalScrollableBase.Remove(verticalItems[i]);
138 verticalItems[i].Dispose();
141 if (verticalScrollableBase != null)
143 root.Remove(verticalScrollableBase);
144 verticalScrollableBase.Dispose();
146 for (int i = 0; i < 5; i++)
148 if (horizontalItems[i] != null)
150 horizontalScrollableBase.Remove(horizontalItems[i]);
151 horizontalItems[i].Dispose();
154 if (horizontalScrollableBase != null)
156 root.Remove(horizontalScrollableBase);
157 horizontalScrollableBase.Dispose();