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,
41 horizontalScrollableBase.ScrollOutOfBound += OnHorizontalScrollOutOfBound;
43 horizontalItems = new TextLabel[5];
44 for (int i = 0; i < 5; i++)
46 horizontalItems[i] = new TextLabel
48 Position = new Position(i * 200, 0),
49 Size = new Size(200, 300),
51 TextColor = Color.Black,
55 horizontalItems[i].BackgroundColor = Color.White;
59 horizontalItems[i].BackgroundColor = Color.Cyan;
61 horizontalScrollableBase.Add(horizontalItems[i]);
63 root.Add(horizontalScrollableBase);
66 private void OnHorizontalScrollOutOfBound(object sender, Components.ScrollOutOfBoundEventArgs e)
68 if (e.ScrollableBound == Components.ScrollOutOfBoundEventArgs.Bound.Left)
70 horizontalItems[0].Text = "Reached at the left.";
72 else if (e.ScrollableBound == Components.ScrollOutOfBoundEventArgs.Bound.Right)
74 horizontalItems[4].Text = "Reached at the right.";
78 private void CreateVerticalScrollableBase()
80 verticalScrollableBase = new Components.ScrollableBase()
82 Size = new Size(400, 300),
83 ScrollingDirection = Components.ScrollableBase.Direction.Vertical,
84 EnableOverShootingEffect = true,
86 verticalScrollableBase.ScrollOutOfBound += OnVerticalScrollOutOfBound;
88 verticalItems = new TextLabel[5];
89 for (int i = 0; i < 5; i++)
91 verticalItems[i] = new TextLabel
93 Position = new Position(0, i * 100),
94 Size = new Size(400, 100),
96 TextColor = Color.Black,
100 verticalItems[i].BackgroundColor = Color.White;
104 verticalItems[i].BackgroundColor = Color.Cyan;
106 verticalScrollableBase.Add(verticalItems[i]);
108 root.Add(verticalScrollableBase);
111 private void OnVerticalScrollOutOfBound(object sender, Components.ScrollOutOfBoundEventArgs e)
113 if (e.Displacement > 100)
115 if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Down)
117 items[0].Text = $"Reached at the top, panned displacement is {e.Displacement}.";
120 else if (0 - e.Displacement > 100)
122 if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Up)
124 items[4].Text = $"Reached at the bottom, panned displacement is {e.Displacement}.";
129 public void Deactivate()
131 for (int i = 0; i < 5; i++)
133 if (verticalItems[i] != null)
135 verticalScrollableBase.Remove(verticalItems[i]);
136 verticalItems[i].Dispose();
139 if (verticalScrollableBase != null)
141 root.Remove(verticalScrollableBase);
142 verticalScrollableBase.Dispose();
144 for (int i = 0; i < 5; i++)
146 if (horizontalItems[i] != null)
148 horizontalScrollableBase.Remove(horizontalItems[i]);
149 horizontalItems[i].Dispose();
152 if (horizontalScrollableBase != null)
154 root.Remove(horizontalScrollableBase);
155 horizontalScrollableBase.Dispose();