#xamarin.forms #xamarin.ios #xamarin-forms-shell
Вопрос:
Я пытаюсь расширить свои страницы из своей оболочки под нижней панелью вкладок в iOS
MyShellRenderer:класс ShellRenderer
[assembly: ExportRenderer(typeof(AppShell), typeof(MyShellRenderer))]
namespace your namepace
{
class MyShellRenderer:ShellRenderer
{
protected override IShellTabBarAppearanceTracker CreateTabBarAppearanceTracker()
{
return new MyShellTabBarAppearanceTrancker();
}
}
}
Класс myshelltabbarappearancetrancer:
class MyShellTabBarAppearanceTrancker : IShellTabBarAppearanceTracker
{
public void Dispose()
{
}
public void ResetAppearance(UITabBarController controller)
{
}
public void SetAppearance(UITabBarController controller, ShellAppearance appearance)
{
controller.TabBar.IsTranslucent = true;
}
public void UpdateLayout(UITabBarController controller)
{
}
}
Но это не работает, оболочка сохраняет все страницы над нижней панелью вкладок (как в стеке).
Ответ №1:
Используйте Alpha
вместо IsTranslucent
.
Значение этого свойства представляет собой число с плавающей запятой в диапазоне от 0,0 до 1,0, где 0,0 означает полную прозрачность, а 1,0 означает полную непрозрачность.
Попробуйте установить его как controller.TabBar.Alpha = 0.5f;
.
Тестовый код в xaml
<Grid>
<Label Text="111" VerticalOptions="Start"/>
<Label Text="222" Margin="30,0,0,-50" VerticalOptions="End"/>
</Grid>
Комментарии:
1. idk как, но это не работает для меня :/ Возможно ли выполнить это в визуализаторе без необходимости добавлять прозрачность ?
2. без необходимости вводить прозрачность ? Что это значит ?
3. непрозрачная панель (с сплошным цветом), я объясняю, почему я хочу этого добиться : потому что я добавил закругленный угол (верхний левый и верхний правый) на панель вкладок, но вид находится над панелью вкладок, поэтому рендеринг плохой, и решение состоит в том, что вид должен проходить под панелью вкладок