مشخصات مقاله
حذف آیکون Android Action Bar در Xamarin.Forms
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
حذف آیکون Android Action Bar در Xamarin.Forms
در این مقاله یک کنترل سفارشی رندر شده برای Xamarin.Forms خواهیم ساخت که به برنامه نویسان اجازه می دهد با کدهای مخصوص هر پلتفرم، نمایش پیش فرض بومی در کنترل Xamarin، override شود.
آموزش های مختلفی برای حذف آیکون action bar از پروژه اندروید در Xamarin.Forms ارائه شده است. در اغلب آنها پیشنهاد شده است با تغییر در MainActivity.cs آیکون برنامه را transparent کنند. مانند دستور زیر:
[Activity (Label = "Sample Application", Icon = "@android:color/transparent", MainLauncher = true]
در این شرایط هیچ کس توجه نکرده است که با اعمال چنین تغییری، آیکون برنامه transparent می شود. در نتیجه وقتی که برنامه بر روی دستگاه نصب شود، هیچ آیکونی نشان داده نخواهد شد.
اما در این مقاله به شما نشان خواهم داد چطور می توانید یک صفحه را نماشی دهید و بنا به سلیقه آیکون های ناخواسته روی Action Bar را حذف کنید.
در اینجا کلاس NavigationPage، جابجایی (navigation) را مدیریت می کند.
یک کلاس به نام CustomNavigationRenderer در پروژه اندروید ایجاد کنید. پیاده سازی این کلاس platform-specific خواهد بود و شامل کدهایی برای مخفی کردن آیکون Action Bar است:
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
{
base.OnElementChanged(e);
RemoveAppIconFromActionBar();
}
void RemoveAppIconFromActionBar()
{
var actionBar = ((Activity)Context).ActionBar;
actionBar.SetIcon(new ColorDrawable(Color.Transparent.ToAndroid()));
}
}
}
حالا یک subclass از کنترل NavigationPage ایجاد کنید تا آن را سفارشی کنیم.
public class CustomNavigationRenderer : NavigationPage { }
برنامه را Build و اجرا کنید.