xamarin AndroidX.AppCompat.Widget工具栏始终为空

cwxwcias  于 2022-12-31  发布在  Android
关注(0)|答案(2)|浏览(180)

我正在应用自定义解决方案来覆盖导航栏的后退点击。但是,工具栏对象总是null和崩溃的应用程序。
主活动类

protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;
             
            base.OnCreate(savedInstanceState);
            ZXing.Mobile.MobileBarcodeScanner.Initialize(Application); 
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
           
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

            LoadApplication(new App());
             //always null
            AndroidX.AppCompat.Widget.Toolbar toolbar
            = this.FindViewById<AndroidX.AppCompat.Widget.Toolbar>(Resource.Id.toolbar);
            //null exception
            SetSupportActionBar(toolbar);
        }

toolbar.xml

<androidx.appcompat.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="#00748a"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

有什么办法吗?

s2j5cfk0

s2j5cfk01#

在App.cs中,我将这行代码替换为

MainPage =  new Login();

使用这一行,这样工具栏就被初始化了

MainPage = new Xamarin.Forms.NavigationPage(new Login());
knpiaxh1

knpiaxh12#

您可以尝试将布局名称toolbar.xml更改为Toolbar.xml
此外,由于您使用了以下代码:

TabLayoutResource = Resource.Layout.Tabbar;

你还需要在android平台的layout文件夹中添加布局Tabbar.xml,在我的代码中,我没有添加TabLayoutResource = Resource.Layout.Tabbar;

相关问题