2016-10-15 8 views
1

NuGet FAB.Formsパッケージ(github)のxamarin.formsでフローティングアクションボタンを使用しようとしています。私はSampleフォルダフローティングアクションボタン:FloatingActionButtonクラスのエラーエラー

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に提供された例のように私のコードを作ってみました。ポータブル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> 

ドロイド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.Views.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class android.support.design.widget.FloatingActionButton` 

どうしてですか?私は何が欠けていますか?どうすればこの問題を解決できますか?

+0

に、このようなテーマを追加することができます

[Activity(Label = "YourName", , Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); global::Xamarin.Forms.Forms.Init(this, bundle); FAB.Droid.FloatingActionButtonRenderer.InitControl(); LoadApplication(new App()); } } 

は、あなたが活動MainActivityを拡張使用しています? –

+0

私はC#xamarin.formsをアンドロイドではなくコーディングしています。 My( 'Activities' /' Pages')は 'ContentPage'を拡張しています。 –

+0

Ahh yess、何の問題もなく実行していますか? –

答えて

1

私も同様の問題がありましたが、私はAndroidを使用しています。プロジェクトの親テーマを任意のTheme.AppCompat〜に変更するだけで、これは私の問題を解決しました。 MainActivity.csglobal::Xamarin.Forms.Platform.Android.FormsAppCompatActivityを追加します。あなたはstyle.xml

<style 
     name="MyTheme" 
     parent="Base.AppTheme"> 
</style> 

<style name="Base.AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
<item name="windowActionBar">false</item> 
<item name="windowNoTitle">true</item> 
</style> 
+0

あなたのコードはそのエラーを解決しましたが、NullReferenceExceptionを与えました。私は2つのアドバイス[ここ](https://forums.xamarin.com/discussion/39955/android-cant-use-theme)からこのエラーを解決することができました。その問題を解決すると、Java.Lang.IllegalStateExceptionという別のエラーが発生しました:このアクティビティには、すでにウィンドウの装飾によってアクションバーが用意されています。あなたのテーマでWindow.FEATURE_SUPPORT_ACTION_BARを要求せず、windowActionBarをfalseに設定して、代わりにツールバーを使用してください。 –

+0

(いつものように)この[SO答え](http://stackoverflow.com/a/26515159/4614264)のおかげで、私は私の問題を解決することができました。 false true 'を私のテーマスタイルの中に加えます。 @mwwあなたが直面したエラーを解決するためにそれを修正するとすぐにあなたの答えを受け入れることがうれしいです。再び、ありがとう:) –

関連する問題