it-swarm.com.de

Stil "floatingActionButtonStyle" konnte im aktuellen Design nicht gefunden werden

Ich bin ein Neuling in der Android-Entwicklung, also beginne ich mit dem einfachen Projekt, das mit Android Studio "Hallo Welt" kam, aber es gibt dieses Problem:

Stil "floatingActionButtonStyle" im aktuellen Design konnte nicht gefunden werden Ich habe Android Studio 3.1.3 x86

meine SDK-Version aus der build.gradle-Datei ist auch 28 

und dies ist die activity_main.xml :

    <?xml version="1.0" encoding="utf-8"?>
<Android.support.design.widget.CoordinatorLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Android.support.design.widget.AppBarLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:theme="@style/AppTheme.AppBarOverlay">

        <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            Android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </Android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />

    <Android.support.design.widget.FloatingActionButton
        Android:id="@+id/fab"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="bottom|end"
        Android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@Android:drawable/ic_dialog_email" />

</Android.support.design.widget.CoordinatorLayout>

und das ist meine content_main.xml :

        <?xml version="1.0" encoding="utf-8"?>
    <Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        xmlns:app="http://schemas.Android.com/apk/res-auto"
        xmlns:tools="http://schemas.Android.com/tools"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        tools:context=".MainActivity"
        tools:showIn="@layout/activity_main">

        <TextView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:text="Hello World!"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </Android.support.constraint.ConstraintLayout>

und das ist mein AndroidManifest.xml :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.admin.myapplication">

    <application
        Android:allowBackup="true"
        Android:icon="@mipmap/ic_launcher"
        Android:label="@string/app_name"
        Android:roundIcon="@mipmap/ic_launcher_round"
        Android:supportsRtl="true"
        Android:theme="@style/AppTheme">
        <activity
            Android:name=".MainActivity"
            Android:label="@string/app_name"
            Android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
6
zerocool

Bei der Überprüfung der Quelle von FloatingActionButton kann man sehen, dass der Konstruktor geändert wurde

public FloatingActionButton(Context context, AttributeSet attrs) {
    this(context, attrs, R.attr.floatingActionButtonStyle);
}

Es gibt neue floatingActionButtonStyle, die in 'com.Android.support:appcompat-v7:28.0.0-alpha1' standardmäßig nicht enthalten ist.

Die beste Lösung, die ich gefunden habe (basierend auf einem ähnlichen Fall hier ), besteht darin, das Attribut in Ihrem Design zu definieren (möglicherweise nur in der Debug-Version). Auf diese Weise ist der Fehler nicht mehr vorhanden, da @style/Widget.Design.FloatingActionButton bereits in der Support-Bibliothek definiert ist Sie müssen den Stil nicht erstellen. Verweisen Sie ihn einfach in Ihrem AppTheme-Stil in Ihrer values/styles.xml-Datei.

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="floatingActionButtonStyle">@style/Widget.Design.FloatingActionButton</item>
</style>

Stellen Sie sicher, dass Sie AppTheme in der Layoutvorschau und im Clean Build verwenden.

5
Rami Alloush

Es könnte ein "falscher" Fehler bezüglich des Stils sein: Prüfen Sie, ob Sie die setOnClickListener für die richtige Aktivität geschrieben haben, bei der Sie dieses Problem haben. Möglicherweise haben Sie den Listener für diese Schaltfläche in die falsche Aktivität geschrieben. Sie können es einfach testen, indem Sie den Code über setOnClickListener vorübergehend kommentieren und den Build erneut starten.

1