我使用这个例子:https://github.com/UdaraAlwis/Xamarin-Playground/tree/master/XFNavBarBackBtnClickOverride。
但是FindViewById(Resource.Id.toolbar)返回null。在新项目中,此示例工作正常。在我的项目不起作用。我还能查到什么?
MainAcitvity.cs
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
<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
<?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>发布于 2019-09-26 09:23:29
下一行
Toolbar toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);当您没有将工具栏定义为Android.Support.V7.Widget.Toolbar时,它将被插入为Android..Widget.Toolbar.So --方法FindViewById将永远不会在xml中找到工具栏。
取而代之的是下面的一行。
Android.Support.V7.Widget.Toolbar toolbar = this.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);您需要将MainPage设置为app.xaml.cs中的一个NavigationPage。
MainPage = new NavigationPage(new xxxPage());https://stackoverflow.com/questions/58112810
复制相似问题