【问题标题】:Using AppCompat-Toolbar in Xamarin.Android without deriving from AppCompatActivity?在 Xamarin.Android 中使用 AppCompat-Toolbar 而不从 AppCompatActivity 派生?
【发布时间】:2019-01-09 16:40:45
【问题描述】:

我想向我的 Xamarin.Android 应用程序中的活动添加工具栏。这应该适用于旧版本的 Android,因此我正在使用 Android Support v7 AppCompat 库来实现此功能。

为了使工具栏像操作栏一样,我必须调用 SetSupportActionBar(参见 here

public class MainActivity : AppCompatActivity
{
    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        // Set our view from the "main" layout resource
        SetContentView (Resource.Layout.main);

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

        //Toolbar will now take on default actionbar characteristics
        SetSupportActionBar (toolbar);

        SupportActionBar.Title = "Hello from Appcompat Toolbar";

        // ...
    }
}

SetSupportActionBar 方法来自 AppCompatActivity,这就是为什么示例代码中的 Activity 首先派生自该类的原因。

现在,如果我不能从 AppCompatActivity 派生我的 Activity,有没有办法利用 AppCompatActivity 的功能,例如 SetSupportActionBar?

我的活动必须扩展另一个基类才能正常运行。

【问题讨论】:

标签: xamarin xamarin.android android-appcompat


【解决方案1】:

我知道这真的很旧,但如果人们仍然需要它,这里是代码:

        private AppCompatDelegate appCompat;

    protected override void OnCreate(Bundle savedInstanceState)
    {
        appCompat = AppCompatDelegate.Create(this, null);
        appCompat.OnCreate(savedInstanceState);
        appCompat.SetContentView(Resource.Layout.Invite);

        Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
        appCompat.SetSupportActionBar(toolbar);
    }

使用来自 Killman 的链接Java explanation

【讨论】:

    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多