使用自定义 ActionBar 布局创建 AppCompat 主题

Create a AppCompat Theme with a Custom ActionBar layout

我有问题。我在 styles.xml 中创建了一个主题,如下所示:

<resources>
  <style name="BluePixelsTheme" parent="@style/Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/ActionBarStyle</item>
  </style>

  <style name="ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="android:height">75dp</item>
    <item name="android:displayOptions"></item>
  </style>
</resources>

现在在我的 MainActivity 中设置 ActionBar 的布局如下:

ActionBar.SetCustomView(Resource.Layout.setup_nav_bar);
ActionBar.SetDisplayShowCustomEnabled(true);
((Toolbar)ActionBar.CustomView.Parent).SetContentInsetsAbsolute(0, 0);

但这会导致 ActionBar 具有 null 值的错误... 当我不使用 AppCompat 主题时,一切都很好,但是我怎样才能 使用 AppCompat 主题来完成这项工作?

请告诉我!

您可以使用以下代码。

 this.SupportActionBar.DisplayOptions = (int)ActionBarDisplayOptions.ShowCustom;
        SupportActionBar.SetDisplayShowCustomEnabled(true);
        View view = LayoutInflater.Inflate(Resource.Layout.setup_nav_bar,
        null);
        Android.Support.V7.App.ActionBar.LayoutParams layoutParams = new Android.Support.V7.App.ActionBar.LayoutParams(Android.Support.V7.App.ActionBar.LayoutParams.MatchParent, Android.Support.V7.App.ActionBar.LayoutParams.MatchParent);
        SupportActionBar.SetCustomView(view, layoutParams);

        Android.Support.V7.Widget.Toolbar parentToolbar = view.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.ll_toolbar);
        parentToolbar.SetContentInsetsAbsolute(0, 0);