我如何在 xamarin 中为 android 添加工具栏,因为 ToolbarItem 不适用于 .droid?
How do i add toolbar for android in xamarin,forms as ToolbarItem is not working for .droid?
我想在 xamarin.forms 中为我的移动应用程序添加一个工具栏。我在网上冲浪并了解了 toolbaritems,但我认为它只适用于 windows phone,不适用于 android。衷心感谢有关此问题的任何帮助。
Ps: 我也需要标签页中的工具栏。
这是我的一段代码:
//main page
namespace eSewaXamarin
{
public class App:Application
{
public App ()
{
MainPage = new TabbedPageClass ();
}
protected override void OnStart ()
{
// Handle when your app starts
}
protected override void OnSleep ()
{
// Handle when your app sleeps
}
protected override void OnResume ()
{
// Handle when your app resumes
}
}
}
//tabbed page
namespace eSewaXamarin
{
public class TabbedPageClass: TabbedPage
{
public TabbedPageClass ()
{
//this.SwipeEnabled = true;
ToolbarItems.Add(new ToolbarItem("Click", null, () => {
Console.WriteLine("Clicked");
}));
//this.Title = "eSewa";
//TabbedPageClass tabbedPage=new TabbedPageClass();
this.Children.Add (new MainMenu ());
this.Children.Add (new QuickMenu ());
this.Children.Add (new AboutPage ());
}
}
}
//about page
namespace eSewaXamarin
{
public class AboutPage:ContentPage
{
public AboutPage(){
Title="About";
this.BackgroundColor = Colors.lightGrey;
Padding = new Thickness (0,Device.OnPlatform(20, 0, 0),0,0);
var listView = new ListView ();
listView.ItemTemplate = new DataTemplate (typeof(AboutCell));
listView.ItemsSource = AboutClass.getAboutText ();
listView.RowHeight = 80;
var fonePayIcon = new Image{
Aspect = Aspect.AspectFit,
};
fonePayIcon.Source = ImageSource.FromFile ("footer_logo.png");
this.Content = new ScrollView {
Content = new StackLayout{
Children={listView,new StackLayout{
Padding=new Thickness(0,8,0,8),
BackgroundColor=Color.FromHex ("dfdfdf"),
VerticalOptions=LayoutOptions.EndAndExpand,
Children={fonePayIcon}
}
}
}
};
listView.ItemSelected += (sender, e) => {
if (e.SelectedItem != null) {
AboutClass aboutClass=(AboutClass)e.SelectedItem;
int id=aboutClass.id;
AppLog.showlog ("Selected item:::::" + aboutClass.id);
if(id==0){
Navigation.PushModalAsync (new NavigationPage(new Registration()));
}else if(id==1){
Navigation.PushModalAsync(new NavigationPage(new AbouteSewa()));
}else if(id==2){
Navigation.PushModalAsync(new AboutFonePay());
}else if(id==3){
Navigation.PushModalAsync(new AboutSecurityTips());
}else if(id==4){
Navigation.PushModalAsync(new AboutAppInfo());
}
}
((ListView)sender).SelectedItem = null;
};
}
}
}
//registration page
namespace eSewaXamarin
{
public class Registration: ContentPage
{
public Registration ()
{
this.Title="Registration";
ToolbarItems.Add(new ToolbarItem("Click", null, () => {
Console.WriteLine("Clicked");
}));
this.BackgroundColor = Colors.lightGrey;
var label = new Label {
Text = Strings.eSewaRegistratinAbout,
Style=Styles.LabelStyle
};
var registerButton=new Button{
Text="Register",
Style= Styles.buttonStyleGrey
};
var esewa_icon = new Image {
Aspect = Aspect.AspectFit,
};
esewa_icon.Source = ImageSource.FromFile ("header_logo.png");
Content = new StackLayout {
Style = Styles.toolbarStyle,
Children = {new StackLayout{
Style=Styles.stackLayoutStyleForAboutSection,
Children={label,registerButton}}
}
};
registerButton.Clicked+=delegate{
var SmsTask = MessagingPlugin.SmsMessenger;
if (SmsTask.CanSendSms)
SmsTask.SendSms("9801063628", "hello aqhtar ");
};
}
}
}
将此添加到您的 Page
构造函数:
ToolbarItems.Add(new ToolbarItem("Click", null, () => {
Console.WriteLine("Clicked");
}));
确保您使用的是最新版本的 Xamarin.Forms。效果很好。
将你的 MainPage
包裹在 NavigationPage
内:
MainPage = new NavigationPage(new YourHomePage());
我想在 xamarin.forms 中为我的移动应用程序添加一个工具栏。我在网上冲浪并了解了 toolbaritems,但我认为它只适用于 windows phone,不适用于 android。衷心感谢有关此问题的任何帮助。 Ps: 我也需要标签页中的工具栏。
这是我的一段代码:
//main page
namespace eSewaXamarin
{
public class App:Application
{
public App ()
{
MainPage = new TabbedPageClass ();
}
protected override void OnStart ()
{
// Handle when your app starts
}
protected override void OnSleep ()
{
// Handle when your app sleeps
}
protected override void OnResume ()
{
// Handle when your app resumes
}
}
}
//tabbed page
namespace eSewaXamarin
{
public class TabbedPageClass: TabbedPage
{
public TabbedPageClass ()
{
//this.SwipeEnabled = true;
ToolbarItems.Add(new ToolbarItem("Click", null, () => {
Console.WriteLine("Clicked");
}));
//this.Title = "eSewa";
//TabbedPageClass tabbedPage=new TabbedPageClass();
this.Children.Add (new MainMenu ());
this.Children.Add (new QuickMenu ());
this.Children.Add (new AboutPage ());
}
}
}
//about page
namespace eSewaXamarin
{
public class AboutPage:ContentPage
{
public AboutPage(){
Title="About";
this.BackgroundColor = Colors.lightGrey;
Padding = new Thickness (0,Device.OnPlatform(20, 0, 0),0,0);
var listView = new ListView ();
listView.ItemTemplate = new DataTemplate (typeof(AboutCell));
listView.ItemsSource = AboutClass.getAboutText ();
listView.RowHeight = 80;
var fonePayIcon = new Image{
Aspect = Aspect.AspectFit,
};
fonePayIcon.Source = ImageSource.FromFile ("footer_logo.png");
this.Content = new ScrollView {
Content = new StackLayout{
Children={listView,new StackLayout{
Padding=new Thickness(0,8,0,8),
BackgroundColor=Color.FromHex ("dfdfdf"),
VerticalOptions=LayoutOptions.EndAndExpand,
Children={fonePayIcon}
}
}
}
};
listView.ItemSelected += (sender, e) => {
if (e.SelectedItem != null) {
AboutClass aboutClass=(AboutClass)e.SelectedItem;
int id=aboutClass.id;
AppLog.showlog ("Selected item:::::" + aboutClass.id);
if(id==0){
Navigation.PushModalAsync (new NavigationPage(new Registration()));
}else if(id==1){
Navigation.PushModalAsync(new NavigationPage(new AbouteSewa()));
}else if(id==2){
Navigation.PushModalAsync(new AboutFonePay());
}else if(id==3){
Navigation.PushModalAsync(new AboutSecurityTips());
}else if(id==4){
Navigation.PushModalAsync(new AboutAppInfo());
}
}
((ListView)sender).SelectedItem = null;
};
}
}
}
//registration page
namespace eSewaXamarin
{
public class Registration: ContentPage
{
public Registration ()
{
this.Title="Registration";
ToolbarItems.Add(new ToolbarItem("Click", null, () => {
Console.WriteLine("Clicked");
}));
this.BackgroundColor = Colors.lightGrey;
var label = new Label {
Text = Strings.eSewaRegistratinAbout,
Style=Styles.LabelStyle
};
var registerButton=new Button{
Text="Register",
Style= Styles.buttonStyleGrey
};
var esewa_icon = new Image {
Aspect = Aspect.AspectFit,
};
esewa_icon.Source = ImageSource.FromFile ("header_logo.png");
Content = new StackLayout {
Style = Styles.toolbarStyle,
Children = {new StackLayout{
Style=Styles.stackLayoutStyleForAboutSection,
Children={label,registerButton}}
}
};
registerButton.Clicked+=delegate{
var SmsTask = MessagingPlugin.SmsMessenger;
if (SmsTask.CanSendSms)
SmsTask.SendSms("9801063628", "hello aqhtar ");
};
}
}
}
将此添加到您的
Page
构造函数:ToolbarItems.Add(new ToolbarItem("Click", null, () => { Console.WriteLine("Clicked"); }));
确保您使用的是最新版本的 Xamarin.Forms。效果很好。
将你的
MainPage
包裹在NavigationPage
内:MainPage = new NavigationPage(new YourHomePage());