【发布时间】:2016-10-16 16:30:05
【问题描述】:
我正在尝试使用 NuGet FAB.Forms 包 (github) 中的 xamarin.forms 中的浮动操作按钮。我试图使我的代码类似于Sample 文件夹中提供的示例
Xamarin.Droid MainActivity.cs 文件
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
FAB.Droid.FloatingActionButtonRenderer.InitControl();
LoadApplication(new App());
}
Xamarin.ios AppDelegate.cs 文件
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
FAB.iOS.FloatingActionButtonRenderer.InitControl();
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
Xamarin.portable App.cs 文件
public App(){MainPage = new LatestNews();}
LatestNews.xaml 文件
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:fab="clr-namespace:FAB.Forms;assembly=FAB.Forms"
x:Class="HuraApp.Pages.LatestNews">
...
<fab:FloatingActionButton
x:Name="fabBtn"
Source="plus.png"
Size="Normal"
Clicked="Handle_FabClicked"
NormalColor="Green"
RippleColor="Red" />
...
</ContentPage>
LatestNews.xaml.cs 文件
void Handle_FabClicked(object sender, System.EventArgs e)
{
this.DisplayAlert("Floating Action Button", "You clicked the FAB!", "Awesome!");
}
可移植的packages.config文件
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FAB.Forms" version="2.1.1" targetFramework="portable45-net45+win8+wpa81" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="portable45-net45+win8+wpa81" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="portable45-net45+win8+wpa81" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="portable45-net45+win8+wpa81" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="portable45-net45+win8+wpa81" />
<package id="sameerIOTApps.Plugin.SecureStorage" version="1.2.1" targetFramework="portable45-net45+win8+wpa81" />
<package id="Xam.Plugin.Media" version="2.3.0" targetFramework="portable45-net45+win8+wpa81" />
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="portable45-net45+win8+wpa81" />
<package id="Xamarin.Forms.Maps" version="2.3.2.127" targetFramework="portable45-net45+win8+wpa81" />
</packages>
droid package.config 文件
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FAB.Forms" version="2.1.1" targetFramework="monoandroid60" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v7.AppCompat" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v7.CardView" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="monoandroid60" />
<package id="Xamarin.Forms.Maps" version="2.3.2.127" targetFramework="monoandroid60" />
<package id="Xamarin.GooglePlayServices.Base" version="29.0.0.1" targetFramework="monoandroid60" />
<package id="Xamarin.GooglePlayServices.Basement" version="29.0.0.1" targetFramework="monoandroid60" />
<package id="Xamarin.GooglePlayServices.Maps" version="29.0.0.1" targetFramework="monoandroid60" />
</packages>
iOS package.config 文件
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FAB.Forms" version="2.1.1" targetFramework="xamarinios10" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="xamarinios10" />
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="xamarinios10" />
<package id="Xamarin.Forms.Maps" version="2.3.2.127" targetFramework="xamarinios10" />
</packages>
但是当我在 android 模拟器上运行应用程序时,它给了我错误消息
`Android.Views.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class android.support.design.widget.FloatingActionButton`
为什么会这样?我错过了什么?我该如何解决这个问题?
【问题讨论】:
-
你用Activity扩展MainActivity吗??
-
我在 c# xamarin.forms 而非 android 中编码。我的 (
Activities/Pages) 正在扩展ContentPage。 -
啊,是的,在 iO 上运行没有任何问题?
-
我还没有在 iOs 上运行它。我现在专注于机器人部分。
-
请把你的全班 MainActivity.cs。和 packages.config.
标签: c# xamarin.forms floating-action-button