从操作栏 xamarin 中删除图标
Remove Icon from Action Bar xamarin
我想从操作栏中删除我的图标,我正在使用 MasterDetail 页面创建一个滑块,我正在使用左边的图标打开滑块,但是 [=16= 右边的小图标] 我想删除,我尝试了 C# 上的所有内容以轻松删除但没有成功。
Tryiend tranpatent、RGBA、None 等,这是我的代码和图片:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using App5.Menu;
using App5.Categorias;
using App5;
namespace App5
{
public class MainPage : MasterDetailPage
{
public MainPage()
{
var menuPage = new MenuPage();
menuPage.OnMenuTap = (page) =>
{
IsPresented = false;
Detail = new NavigationPage(page);
};
Master = menuPage;
Detail = new NavigationPage(new Resumo())
{
BarBackgroundColor = Color.Black,
Icon = None
};
}
}
}
您只需在 Android 项目的 MainActivity.cs
文件中添加这些单行代码。
ActionBar.SetIcon(Android.Resource.Color.Transparent);
例如
using Android.OS;
using Android.Content.PM;
namespace Test.Droid
{
[Activity(Label = "test", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
ActionBar.SetIcon(Android.Resource.Color.Transparent);
LoadApplication(new App());
}
}
我们可以通过更改 Android 项目中的 MainActivity.cs
使应用程序图标透明,如下所示:
[Activity (Label = "Sample Application", Icon = "@android:color/transparent", MainLauncher = true]
在这种情况下,没有人注意到通过这样的改变他们使应用程序图标变得透明。因此,应用程序在安装到设备上时不会显示图标。
所以最好的方法是呈现 NavigationPage
class 来管理一堆其他页面的导航和用户体验。
在 Android 项目中创建一个名为 CustomNavigationRenderer
的 class,它将是特定于平台的实现,其中包含从操作栏中隐藏图标的代码。
using Android.App;
using Android.Graphics.Drawables;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
using SampleApp;
using SampleApp.Droid;
[assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomNavigationRenderer))]
namespace SampleApp.Droid {
public class CustomNavigationRenderer: NavigationRenderer {
protected override void OnElementChanged(ElementChangedEventArgs < NavigationPage > e) {
base.OnElementChanged(e);
RemoveAppIconFromActionBar();
}
void RemoveAppIconFromActionBar() {
var actionBar = ((Activity) Context).ActionBar;
actionBar.SetIcon(new ColorDrawable(Color.Transparent.ToAndroid()));
}
}
}
现在创建一个要自定义的 NavigationPage 控件的子class。
public class CustomNavigationRenderer : NavigationPage {}
成功构建并运行您的应用程序。
参考:
我想从操作栏中删除我的图标,我正在使用 MasterDetail 页面创建一个滑块,我正在使用左边的图标打开滑块,但是 [=16= 右边的小图标] 我想删除,我尝试了 C# 上的所有内容以轻松删除但没有成功。 Tryiend tranpatent、RGBA、None 等,这是我的代码和图片:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using App5.Menu;
using App5.Categorias;
using App5;
namespace App5
{
public class MainPage : MasterDetailPage
{
public MainPage()
{
var menuPage = new MenuPage();
menuPage.OnMenuTap = (page) =>
{
IsPresented = false;
Detail = new NavigationPage(page);
};
Master = menuPage;
Detail = new NavigationPage(new Resumo())
{
BarBackgroundColor = Color.Black,
Icon = None
};
}
}
}
您只需在 Android 项目的 MainActivity.cs
文件中添加这些单行代码。
ActionBar.SetIcon(Android.Resource.Color.Transparent);
例如
using Android.OS;
using Android.Content.PM;
namespace Test.Droid
{
[Activity(Label = "test", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
ActionBar.SetIcon(Android.Resource.Color.Transparent);
LoadApplication(new App());
}
}
我们可以通过更改 Android 项目中的 MainActivity.cs
使应用程序图标透明,如下所示:
[Activity (Label = "Sample Application", Icon = "@android:color/transparent", MainLauncher = true]
在这种情况下,没有人注意到通过这样的改变他们使应用程序图标变得透明。因此,应用程序在安装到设备上时不会显示图标。
所以最好的方法是呈现 NavigationPage
class 来管理一堆其他页面的导航和用户体验。
在 Android 项目中创建一个名为 CustomNavigationRenderer
的 class,它将是特定于平台的实现,其中包含从操作栏中隐藏图标的代码。
using Android.App;
using Android.Graphics.Drawables;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
using SampleApp;
using SampleApp.Droid;
[assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomNavigationRenderer))]
namespace SampleApp.Droid {
public class CustomNavigationRenderer: NavigationRenderer {
protected override void OnElementChanged(ElementChangedEventArgs < NavigationPage > e) {
base.OnElementChanged(e);
RemoveAppIconFromActionBar();
}
void RemoveAppIconFromActionBar() {
var actionBar = ((Activity) Context).ActionBar;
actionBar.SetIcon(new ColorDrawable(Color.Transparent.ToAndroid()));
}
}
}
现在创建一个要自定义的 NavigationPage 控件的子class。
public class CustomNavigationRenderer : NavigationPage {}
成功构建并运行您的应用程序。
参考: