【问题标题】:How to display the Master Page Menu content to be displayed below the navigation bar?如何显示要在导航栏下方显示的母版页菜单内容?
【发布时间】:2017-06-10 07:35:45
【问题描述】:

在使用 xamarin 形式的导航页面设置主-详细信息页面时,我遇到了一个小问题。

母版页的内容占据设备的整个高度。我希望从导航栏底部显示内容。

这是母版页的示例:

<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="XamarinExp.Pages.SampleMasterPage">
  <MasterDetailPage.Master>
    <ContentPage Title="Menu">
      <StackLayout Spacing="0">
        <Label Text="Sample Menu" FontSize="Large" FontAttributes="Bold"></Label>
        <ListView x:Name="lvMenu" SeparatorColor="Green">
          <ListView.ItemTemplate>
            <DataTemplate>
              <ViewCell>
                <StackLayout Padding="10,0,0,0">
                  <Label HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" YAlign="Center" Text="{Binding Title}" TextColor="#03a9f4" >
                    <Label.GestureRecognizers>
                      <TapGestureRecognizer Tapped="OnLabelClicked" />
                    </Label.GestureRecognizers>
                  </Label>
                </StackLayout>
              </ViewCell>
            </DataTemplate>
          </ListView.ItemTemplate>
        </ListView>
      </StackLayout>
    </ContentPage>
  </MasterDetailPage.Master>
</MasterDetailPage>

这个来自cs文件的代码sn-p:

NavigationPage nPage = new NavigationPage(new DeviceCheck());
this.Detail = nPage;

这就是我在 Droid/Resources/values/styles.xml 中的内容

<?xml version="1.0" encoding="utf-8" ?>
<resources>

  <style name="MainTheme" parent="MainTheme.Base">
  </style>
  <!-- Base theme applied no matter what API -->
  <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
    <item name="windowNoTitle">true</item>
    <!--We will be using the toolbar so no need to show ActionBar-->
    <item name="windowActionBar">false</item>
    <!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette -->
    <!-- colorPrimary is used for the default action bar background -->
    <item name="colorPrimary">#2196F3</item>
    <!-- colorPrimaryDark is used for the status bar -->
    <item name="colorPrimaryDark">#1976D2</item>
    <!-- colorAccent is used as the default value for colorControlActivated
         which is used to tint widgets -->
    <item name="colorAccent">#FF4081</item>
    <!-- You can also set colorControlNormal, colorControlActivated
         colorControlHighlight and colorSwitchThumbNormal. -->
    <item name="windowActionModeOverlay">true</item>

    <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>

    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
  </style>

  <style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">#FF4081</item>
  </style>
</resources>

我希望菜单从蓝条下方开始。

任何帮助表示赞赏。提前致谢。

【问题讨论】:

  • 你解决了这个问题吗?

标签: xamarin.forms navigation-drawer master-detail


【解决方案1】:

在 App.cs 中设置 NavigationPage 类型的 MainPage

 MainPage = new NavigationPage(new SampleMasterPage());

【讨论】:

  • 不要认为这就是 OP 的要求。您的方法使整个主详细信息页面移动到下方,包括汉堡包。 OP 只希望将菜单(内容)移到下方。
猜你喜欢
  • 2019-03-19
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 2019-06-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多