Witam mam twarz ten sam problem i wiem, że jej żmudne zadanie załadować odzwierciedlać biblioteki Java w Xamarin android.
Ale dzięki "James Montemagno" przyjść z jego rozwiązaniem. Oto link, który możesz śledzić i uzyskać pożądany wynik!
To zadziałało dla mnie, mam nadzieję, że będzie dla ciebie. Szczęśliwe kodowanie! :)
Link: https://montemagno.com/remove-shifting-bottomnavigationview-android/
Git postu: https://github.com/jamesmontemagno/Xamarin-Templates/blob/master/Xamarin.Android-Templates/Projects/BottomTabsApp/BlankAppCompat/BottomNavigationViewUtils.cs
publicznych klasy statyczne BottomNavigationViewUtils {
/// <summary>
/// Enable or disable shift mode on bottom navigation view
/// </summary>
public static void SetShiftMode(this BottomNavigationView bottomNavigationView, bool enableShiftMode, bool enableItemShiftMode)
{
try
{
var menuView = bottomNavigationView.GetChildAt(0) as BottomNavigationMenuView;
if (menuView == null)
{
System.Diagnostics.Debug.WriteLine("Unable to find BottomNavigationMenuView");
return;
}
var shiftMode = menuView.Class.GetDeclaredField("mShiftingMode");
shiftMode.Accessible = true;
shiftMode.SetBoolean(menuView, enableShiftMode);
shiftMode.Accessible = false;
shiftMode.Dispose();
for (int i = 0; i < menuView.ChildCount; i++)
{
var item = menuView.GetChildAt(i) as BottomNavigationItemView;
if (item == null)
continue;
item.SetShiftingMode(enableItemShiftMode);
item.SetChecked(item.ItemData.IsChecked);
}
menuView.UpdateMenuView();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"Unable to set shift mode: {ex}");
}
}
}
niż stosowanie go:
var Bott omNavigationView = FindViewById (Resource.Id.bottomNavigationBar); bottomNavigationView.SetShiftMode (false, false);
Szukasz rozwiązania tego samego problemu. –