好的,这就是我的工作方式......
打开示例项目并在发布模式下仅构建“ActionBarSherlock”项目。确保最低目标 android 版本为 4.0.3(必需)
获取 dll 并在您的项目中引用它。我发现如果您的项目的最低 android 版本为 2.2,您可以让它编译得很好——我发现如果您使用配置文件版本 2.1,它就不起作用,但这可能是我的应用程序。也许您的最低版本太低?我还将我的“目标”android 设置为最新的......我不知道这是否也有帮助。
我说引用 dll 而不是项目的原因是您将获得正确的智能感知。否则,正如您在示例项目中看到的那样,它不会(使工作变得痛苦!)。
确保您在项目中引用了 v4 支持库 (Mono.Android.Support.v4)
最后一步是需要更改默认主题以使用 Sherlock 主题。(例如,请参见下面的 xml)
添加操作栏等时使用 ActionbarSherlock.* 命名空间...
添加 ActionbarSherlock 后的示例清单:
<manifest ...>
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />
<application android:label="IDNT" android:theme="@style/Theme.Sherlock.Light.DarkActionBar" android:icon="@drawable/Icon">
</application>
</manifest>
请注意:所有这些都有一个小问题......如果您的项目的最低版本低于 3.0(即根据我的示例为 2.2)并且您使用链接进行编译(即仅 SDK 程序集),您将收到错误“Mono. Cecil.ResolutionException:无法解析 Android.Database.IDatabaseErrorHandler'。我目前正在向 Xamarin 发送有关此问题的支持消息,一旦解决问题,我将编辑此帖子。
EDIT: To fix the issue I have mentioned above make sure that the project options -> Application -> Minimum Android to target option is at LEAST 4.0.3. Your minSdkVersion can still be 7/8 or whatever so it will still run in older android versions. It also means you have to be careful you dont code in stuff that is for higher versions.