2 using Tizen.NUI.BaseComponents;
4 using Tizen.NUI.Components;
7 namespace Tizen.NUI.Samples
9 public class ScrollableFocusSample : IExample
13 public void Activate()
15 Window window = NUIApplication.GetDefaultWindow();
18 root.Layout = new AbsoluteLayout();
19 root.Size = new Size(500, 800);
21 root.BackgroundColor = Color.White;
24 FocusManager.Instance.EnableDefaultAlgorithm(true);
25 root.Layout = new LinearLayout
27 LinearOrientation = LinearLayout.Orientation.Vertical
29 root.WidthSpecification = LayoutParamPolicies.MatchParent;
30 root.HeightSpecification = LayoutParamPolicies.MatchParent;
33 var topbtn = new Button
36 FocusableInTouch = true,
41 var scrollview = new ScrollableBase
43 ScrollingDirection = ScrollableBase.Direction.Vertical,
44 WidthSpecification = LayoutParamPolicies.MatchParent,
45 HeightSpecification = LayoutParamPolicies.MatchParent,
46 BackgroundColor = Color.Gray
48 scrollview.ContentContainer.Layout = new AbsoluteLayout();
49 scrollview.ContentContainer.WidthSpecification = LayoutParamPolicies.MatchParent;
50 scrollview.ContentContainer.SizeHeight = 1800;
52 for (int i = 0; i < 40; i++)
54 scrollview.ContentContainer.Add(CreateButton(i));
57 var middle = new Button
60 FocusableInTouch = true,
65 var myscrollview = new ScrollableBase
67 ScrollingDirection = ScrollableBase.Direction.Vertical,
68 WidthSpecification = LayoutParamPolicies.MatchParent,
69 HeightSpecification = LayoutParamPolicies.MatchParent,
70 BackgroundColor = Color.Yellow
72 myscrollview.ContentContainer.Layout = new AbsoluteLayout();
73 myscrollview.ContentContainer.WidthSpecification = LayoutParamPolicies.MatchParent;
74 myscrollview.ContentContainer.SizeHeight = 1800;
75 root.Add(myscrollview);
76 for (int i = 0; i < 40; i++)
78 myscrollview.ContentContainer.Add(CreateButton(i));
81 var bottom = new Button
84 FocusableInTouch = true,
91 static View CreateButton(int index)
93 var rnd = new Random();
98 FocusableInTouch = true,
99 Text = $"Item {index}",
101 // btn.FocusGained += (s, e) =>
103 // Tizen.Log.Error("NUI", $"[[{btn.Text}]] \n");
106 var item = Wrapping(btn);
107 item.SizeWidth = 200;
108 item.SizeHeight = 90;
110 item.Position = new Position(220 * (index % 3), 100 * (index / 3) );
112 if (item is Button button)
114 button.Text = $"[{button.Text}]";
120 static View Wrapping(View view)
122 int cnt = new Random().Next(0, 4);
124 for (int i = 0; i < cnt; i++)
126 var wrapper = new View();
127 view.WidthSpecification = LayoutParamPolicies.MatchParent;
128 view.HeightSpecification = LayoutParamPolicies.MatchParent;
136 public void Deactivate()
140 NUIApplication.GetDefaultWindow().Remove(root);