Xamarin.forms 带有按钮的自定义选项卡页
我需要使用“TabbedPage”创建一个导航,并添加2个按钮(图标)以在我的应用程序中执行其他操作,类似于下图: 在一次测试中,我得出了下面的结果,但我不知道如何保持标签与图标处于同一水平。 MainPage.xamlXamarin.forms 带有按钮的自定义选项卡页,xamarin.forms,toolbar,tabbedpage,Xamarin.forms,Toolbar,Tabbedpage,我需要使用“TabbedPage”创建一个导航,并添加2个按钮(图标)以在我的应用程序中执行其他操作,类似于下图: 在一次测试中,我得出了下面的结果,但我不知道如何保持标签与图标处于同一水平。 MainPage.xaml 您可以使用我在此处创建的选项卡控件: 可以在此处找到解释该组件的帖子: 它是通过网格实现的,因此您可以通过以下方式完全实现您的设计: <Grid> <Grid.RowDefinitions> <RowDefiniti
您可以使用我在此处创建的选项卡控件: 可以在此处找到解释该组件的帖子: 它是通过网格实现的,因此您可以通过以下方式完全实现您的设计:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50 />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<tabs:TabHostView Grid.Row="0"
Grid.Column="0"
SelectedIndex="{Binding Source={x:Reference Switcher}, Path=SelectedIndex, Mode=TwoWay}">
<tabs:BottomTabItem
IconImageSource="flash.png"
SelectedTabColor="{StaticResource White}"
UnselectedLabelColor="{StaticResource White}"
UnselectedIconColor="{StaticResource White}"
Label="Tab 1" />
<tabs:BottomTabItem
IconImageSource="flash.png"
SelectedTabColor="{StaticResource White}"
UnselectedLabelColor="{StaticResource White}"
UnselectedIconColor="{StaticResource White}"
Label="Tab 2" />
</tabs:TabHostView>
<ImageButton Grid.Column="1" ImageSource="hamburger.png" />
<ImageButton Grid.Column="2" ImageSource="icon.png" />
<ScrollView Grid.Row="1" Grid.ColumnSpan="3">
<tabs:ViewSwitcher x:Name="Switcher"
Animate="True"
SelectedIndex="{Binding SelectedViewModelIndex, Mode=TwoWay}">
<details:Tab1View Animate="True" BindingContext="{Binding Tab1ViewModel}" />
<details:Tab2View Animate="True" BindingContext="{Binding Tab2ViewModel}" />
</tabs:ViewSwitcher>
</ScrollView>
</Grid>
您希望使用这两个按钮执行哪些操作?与tab1和tab2的操作相同?如果没有,我认为在使用TabbedPage时,不能将选项卡与图标保持在同一级别。ToolbarItem已添加到导航栏上。@JackHua MSFT由于应用程序的设计,我需要保留这种布局,因此我需要将这些选项卡和两个按钮保持在一起,这些按钮调用外部api来执行一些应用程序操作。好的,我想您需要使用该设计创建自定义选项卡页。谢谢,我正在测试是否可以使用此解决方案调整我的应用程序,一旦完成,我会给出反馈。是否有UWP支持计划?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50 />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<tabs:TabHostView Grid.Row="0"
Grid.Column="0"
SelectedIndex="{Binding Source={x:Reference Switcher}, Path=SelectedIndex, Mode=TwoWay}">
<tabs:BottomTabItem
IconImageSource="flash.png"
SelectedTabColor="{StaticResource White}"
UnselectedLabelColor="{StaticResource White}"
UnselectedIconColor="{StaticResource White}"
Label="Tab 1" />
<tabs:BottomTabItem
IconImageSource="flash.png"
SelectedTabColor="{StaticResource White}"
UnselectedLabelColor="{StaticResource White}"
UnselectedIconColor="{StaticResource White}"
Label="Tab 2" />
</tabs:TabHostView>
<ImageButton Grid.Column="1" ImageSource="hamburger.png" />
<ImageButton Grid.Column="2" ImageSource="icon.png" />
<ScrollView Grid.Row="1" Grid.ColumnSpan="3">
<tabs:ViewSwitcher x:Name="Switcher"
Animate="True"
SelectedIndex="{Binding SelectedViewModelIndex, Mode=TwoWay}">
<details:Tab1View Animate="True" BindingContext="{Binding Tab1ViewModel}" />
<details:Tab2View Animate="True" BindingContext="{Binding Tab2ViewModel}" />
</tabs:ViewSwitcher>
</ScrollView>
</Grid>