-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMainActivity.cs
66 lines (56 loc) · 2.18 KB
/
MainActivity.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Views;
using Android.Widget;
using TreeMenuSample.Shared;
using TreeMenuView.Android;
using TreeMenuView.Shared.Models;
namespace TreeMenuSample.Android
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme.NoActionBar", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
private FrameLayout _layout;
private TextView _label;
private TreeMenuView<Category, long> _treeMenu;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
InitLayout();
InitTreeMenu();
InitLabel();
SetContentView(_layout);
}
private void InitLayout()
{
_layout = new FrameLayout(this);
_layout.LayoutParameters = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
}
private void InitTreeMenu()
{
var cellHeight = Resources.GetDimensionPixelSize(Resource.Dimension.height_category_cell);
_treeMenu = new TreeMenuView<Category, long>(this, (_, __) => new CategoryCell(this), cellHeight);
_layout.AddView(_treeMenu.View, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent));
_treeMenu.Items = Category.CreateSamples();
_treeMenu.NodeSelected += HandleSelectedNode;
}
private void HandleSelectedNode(object sender, TreeNode<Category, long> node)
{
_label.Text = $"Selected category is {node.Data.Title}";
}
private void InitLabel()
{
_label = new TextView(this);
_label.Gravity = GravityFlags.Bottom | GravityFlags.CenterHorizontal;
_label.Text = $"Selected category is {_treeMenu.CurrentNode.Data.Title}";
_layout.AddView(_label);
}
protected override void OnDestroy()
{
base.OnDestroy();
_treeMenu.NodeSelected -= HandleSelectedNode;
}
}
}