blob: 92a774e8b79e344c1e31581cf55e131ecdc913c1 (
plain)
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 Android.Widget;
using AScrollView = Android.Widget.ScrollView;
using AButton = Android.Widget.Button;
using AView = Android.Views.View;
namespace Xamarin.Forms.Platform.Android
{
public class ToolbarRenderer : ViewRenderer
{
public ToolbarRenderer()
{
AutoPackage = false;
}
protected override void OnElementChanged(ElementChangedEventArgs<View> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
var layout = new LinearLayout(Context);
layout.SetBackgroundColor(new Color(0.2, 0.2, 0.2, 0.5).ToAndroid());
layout.Orientation = Orientation.Horizontal;
SetNativeControl(layout);
}
else
{
var oldToolbar = (Toolbar)e.OldElement;
oldToolbar.ItemAdded -= OnToolbarItemsChanged;
oldToolbar.ItemRemoved -= OnToolbarItemsChanged;
}
UpdateChildren();
var toolbar = (Toolbar)e.NewElement;
toolbar.ItemAdded += OnToolbarItemsChanged;
toolbar.ItemRemoved += OnToolbarItemsChanged;
}
void OnToolbarItemsChanged(object sender, ToolbarItemEventArgs e)
{
UpdateChildren();
}
void UpdateChildren()
{
RemoveAllViews();
foreach (ToolbarItem child in ((Toolbar)Element).Items)
{
AView view = null;
if (!string.IsNullOrEmpty(child.Icon))
view = new ToolbarImageButton(Context, child);
else
view = new AButton(Context);
using (var param = new LinearLayout.LayoutParams(LayoutParams.WrapContent, (int)Context.ToPixels(48), 1))
((LinearLayout)Control).AddView(view, param);
}
}
}
}
|