Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从动作栏中删除图标xamarin_Android_Xamarin_Android Actionbar_Icons_Xamarin.forms - Fatal编程技术网

Android 从动作栏中删除图标xamarin

Android 从动作栏中删除图标xamarin,android,xamarin,android-actionbar,icons,xamarin.forms,Android,Xamarin,Android Actionbar,Icons,Xamarin.forms,我想从操作栏中删除我的图标,我正在使用MasterDetail页面创建滑块,我正在使用左侧图标打开滑块,但我想删除的“APP Vendas”右侧较小的图标,我尝试了C#上的所有内容以轻松删除,但没有成功。 Tryiend TRANPARENT、RGBA、None等,这是我的代码和图像: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threadi

我想从操作栏中删除我的图标,我正在使用MasterDetail页面创建滑块,我正在使用左侧图标打开滑块,但我想删除的“APP Vendas”右侧较小的图标,我尝试了C#上的所有内容以轻松删除,但没有成功。 Tryiend TRANPARENT、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
类,该类管理其他页面堆栈的导航和用户体验

在Android项目中创建一个名为
CustomNavigationRenderer
的类,该类将是一个特定于平台的实现,其中包含从操作栏隐藏图标的代码

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()));  
        }  
    }  
} 
成功构建并运行应用程序

参考:


用两种可能的方法解决了我的问题!非常感谢。这是非常直接的,它就像一个魅力。与此相比,公认的答案似乎有些过分。
public class CustomNavigationRenderer : NavigationPage {}