首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FindViewById<Toolbar>(Resource.Id.toolbar)返回null

FindViewById<Toolbar>(Resource.Id.toolbar)返回null
EN

Stack Overflow用户
提问于 2019-09-26 08:40:21
回答 1查看 664关注 0票数 0

我使用这个例子:https://github.com/UdaraAlwis/Xamarin-Playground/tree/master/XFNavBarBackBtnClickOverride

但是FindViewById(Resource.Id.toolbar)返回null。在新项目中,此示例工作正常。在我的项目不起作用。我还能查到什么?

MainAcitvity.cs

代码语言:javascript
复制
protected override void OnCreate(Bundle bundle)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            base.OnCreate(bundle);

            Xamarin.Essentials.Platform.Init(this, bundle);
            Forms.Init(this, bundle);

            CrossCurrentActivity.Current.Init(this, bundle);
            Rg.Plugins.Popup.Popup.Init(this, bundle);
            ToastNotification.Init(this);
            Xamarin.FormsMaps.Init(this, bundle);

            DependencyService.Register<ToastNotification>();

            LoadApplication(new App());

            Toolbar toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);
        }

Toolbar.xml

代码语言:javascript
复制
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

styles.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<resources>

  <style name="MainTheme" parent="MainTheme.Base">
  </style>
  <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">

    <item name="windowNoTitle">true</item>

    <item name="windowActionBar">false</item>

    <item name="colorPrimary">#2196F3</item>

    <item name="colorPrimaryDark">#1976D2</item>

    <item name="colorAccent">#172239</item>

    <item name="windowActionModeOverlay">true</item>

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

    <item name="android:textAllCaps">false</item>
  </style>

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

  <color name="ListViewHighlighted">@layout/gradient</color>
</resources>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-26 09:23:29

下一行

代码语言:javascript
复制
Toolbar toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);

当您没有将工具栏定义为Android.Support.V7.Widget.Toolbar时,它将被插入为Android..Widget.Toolbar.So --方法FindViewById将永远不会在xml中找到工具栏。

取而代之的是下面的一行。

代码语言:javascript
复制
Android.Support.V7.Widget.Toolbar toolbar  = this.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

您需要将MainPage设置为app.xaml.cs中的一个NavigationPage。

代码语言:javascript
复制
MainPage = new NavigationPage(new xxxPage());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58112810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档