某些选项卡项目的部分区域未在 sharpnado 选项卡上触发点击事件
Partial area of some tab items not firing tap event on sharpnado tabs
我正在使用“Sharpnado Tabs”,但在中间的“BottomTabItems”中触发点击事件时遇到问题。
我有 5 个底部选项卡,您可以看到所附照片,黑色轮廓区域正在触发点击事件并相应地更改视图。但是,标有白色的区域没有做任何事情。
编辑
5 个标签均匀分布在底部面板上。我已将中间选项卡的背景设置为红色,以查看它们覆盖的区域以及触摸有效的位置。设置 InputTransparent="true"
从选项卡的整个区域删除触摸事件。
<sho:ViewSwitcher x:Name="Switcher"
Grid.Row="0"
Grid.RowSpan="3"
Animate="False"
SelectedIndex="{Binding SelectedViewModelIndex}">
<sho:LazyView x:TypeArguments="pages:ProfilePage" BindingContext="{Binding ProfilePageViewModel}" />
</sho:ViewSwitcher>
<Image Source="navigationbackground.png" Grid.Row="3" TranslationY="5" />
<sho:TabHostView x:Name="TabHostLogo"
Grid.Row="3"
WidthRequest="200"
HeightRequest="60"
Margin="0"
Padding="0,20,0,0"
HorizontalOptions="Fill"
VerticalOptions="Start"
BackgroundColor="Transparent"
IsSegmented="False"
Orientation="Horizontal"
TabType="Fixed"
SelectedTabIndexChanged="TabHostLogo_SelectedTabIndexChanged"
SelectedIndex="{Binding Source={x:Reference Switcher}, Path=SelectedIndex, Mode=TwoWay}">
<sho:TabHostView.Tabs>
<sho:BottomTabItem IconImageSource="homeiconselected.png" IconSize="20" />
<sho:BottomTabItem IconImageSource="profileicon.png" IconSize="20"/>
<sho:TabButton x:Name="TabButton"
IsVisible="True"
ButtonBackgroundColor="Transparent"
ButtonCircleSize="40"
CornerRadius="40"
IconImageSource="navigationaddbutton.png"
TapCommand="{Binding ProfileViewCommand}"
Scale="2.5"
Margin="0,0,0,15"
TranslationY="-20" />
<sho:BottomTabItem IconImageSource="chaticon.png" IconSize="20"/>
<sho:BottomTabItem IconImageSource="moreicon.png" IconSize="20"/>
</sho:TabHostView.Tabs>
</sho:TabHostView>
问题是由 Scale
属性引起的。不幸的是,这会缩放整个选项卡区域,而不仅仅是圆形按钮。在 Scale=2
,每个周围按钮的一半被不可见的扩展选项卡矩形(围绕中间选项卡按钮)遮挡。
如您所见,在 Scale=2.5
处,超过一半的周围标签被隐藏。
我没有找到解决此错误的方法。 (除了不使用 Scale - 但按钮太小或不是圆形,具体取决于您用于 ButtonCircleSize 和 CornerRadius 的值。)
我建议在 github Sharpnado.Tabs issue 上提出这个问题。
如果您这样做,请在该问题中将 link 添加到此 SO 问答中。并在该问题的问题底部添加 link - 这样人们就可以跟踪进度。
我正在使用“Sharpnado Tabs”,但在中间的“BottomTabItems”中触发点击事件时遇到问题。
我有 5 个底部选项卡,您可以看到所附照片,黑色轮廓区域正在触发点击事件并相应地更改视图。但是,标有白色的区域没有做任何事情。
编辑
5 个标签均匀分布在底部面板上。我已将中间选项卡的背景设置为红色,以查看它们覆盖的区域以及触摸有效的位置。设置 InputTransparent="true"
从选项卡的整个区域删除触摸事件。
<sho:ViewSwitcher x:Name="Switcher"
Grid.Row="0"
Grid.RowSpan="3"
Animate="False"
SelectedIndex="{Binding SelectedViewModelIndex}">
<sho:LazyView x:TypeArguments="pages:ProfilePage" BindingContext="{Binding ProfilePageViewModel}" />
</sho:ViewSwitcher>
<Image Source="navigationbackground.png" Grid.Row="3" TranslationY="5" />
<sho:TabHostView x:Name="TabHostLogo"
Grid.Row="3"
WidthRequest="200"
HeightRequest="60"
Margin="0"
Padding="0,20,0,0"
HorizontalOptions="Fill"
VerticalOptions="Start"
BackgroundColor="Transparent"
IsSegmented="False"
Orientation="Horizontal"
TabType="Fixed"
SelectedTabIndexChanged="TabHostLogo_SelectedTabIndexChanged"
SelectedIndex="{Binding Source={x:Reference Switcher}, Path=SelectedIndex, Mode=TwoWay}">
<sho:TabHostView.Tabs>
<sho:BottomTabItem IconImageSource="homeiconselected.png" IconSize="20" />
<sho:BottomTabItem IconImageSource="profileicon.png" IconSize="20"/>
<sho:TabButton x:Name="TabButton"
IsVisible="True"
ButtonBackgroundColor="Transparent"
ButtonCircleSize="40"
CornerRadius="40"
IconImageSource="navigationaddbutton.png"
TapCommand="{Binding ProfileViewCommand}"
Scale="2.5"
Margin="0,0,0,15"
TranslationY="-20" />
<sho:BottomTabItem IconImageSource="chaticon.png" IconSize="20"/>
<sho:BottomTabItem IconImageSource="moreicon.png" IconSize="20"/>
</sho:TabHostView.Tabs>
</sho:TabHostView>
问题是由 Scale
属性引起的。不幸的是,这会缩放整个选项卡区域,而不仅仅是圆形按钮。在 Scale=2
,每个周围按钮的一半被不可见的扩展选项卡矩形(围绕中间选项卡按钮)遮挡。
如您所见,在 Scale=2.5
处,超过一半的周围标签被隐藏。
我没有找到解决此错误的方法。 (除了不使用 Scale - 但按钮太小或不是圆形,具体取决于您用于 ButtonCircleSize 和 CornerRadius 的值。)
我建议在 github Sharpnado.Tabs issue 上提出这个问题。
如果您这样做,请在该问题中将 link 添加到此 SO 问答中。并在该问题的问题底部添加 link - 这样人们就可以跟踪进度。