bitwarden-android/src/App/Controls/StepperCell.cs

78 lines
2.5 KiB
C#
Raw Normal View History

2017-05-30 21:13:53 +03:00
using Bit.App.Utilities;
using Xamarin.Forms;
namespace Bit.App.Controls
{
public class StepperCell : ExtendedViewCell
{
public StepperCell(string labelText, double value, double min, double max, double increment)
{
Label = new Label
{
Text = labelText,
HorizontalOptions = LayoutOptions.Start,
2016-08-23 01:59:15 +03:00
VerticalOptions = LayoutOptions.CenterAndExpand,
FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label))
};
StepperValueLabel = new Label
{
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalTextAlignment = TextAlignment.Start,
Text = value.ToString(),
2016-08-23 01:59:15 +03:00
Style = (Style)Application.Current.Resources["text-muted"],
FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label))
};
Stepper = new Stepper
{
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.CenterAndExpand,
Minimum = min,
Maximum = max,
Increment = increment,
Value = value
};
var stackLayout = new StackLayout
{
Orientation = StackOrientation.Horizontal,
Children = { Label, StepperValueLabel, Stepper },
Spacing = 15,
2017-05-30 21:13:53 +03:00
Padding = Helpers.OnPlatform(
2016-08-23 05:59:42 +03:00
iOS: new Thickness(15, 8),
Android: new Thickness(15, 2),
WinPhone: new Thickness(15, 8))
};
2017-05-30 21:13:53 +03:00
if(Device.RuntimePlatform == Device.Android)
2016-08-23 05:59:42 +03:00
{
Label.TextColor = Color.Black;
}
stackLayout.AdjustPaddingForDevice();
2016-08-23 05:59:42 +03:00
View = stackLayout;
}
public Label Label { get; private set; }
public Label StepperValueLabel { get; private set; }
public Stepper Stepper { get; private set; }
private void Stepper_ValueChanged(object sender, ValueChangedEventArgs e)
{
StepperValueLabel.Text = e.NewValue.ToString();
}
public void InitEvents()
{
Stepper.ValueChanged += Stepper_ValueChanged;
}
public void Dispose()
{
Stepper.ValueChanged -= Stepper_ValueChanged;
}
}
}