RuntimeException: Could not inflate Behavior subclass

29,431

Solution 1

Add the following two constructors to your FooterBehavior:

public FooterBehavior() {
}

public FooterBehavior(Context context, AttributeSet attrs) {
    super(context, attrs);
}

Solution 2

Make sure that you are using the absolute path instead of a relative path of the custom behavior class.

For example:

app:layout_behavior="net.company.myapp.view.behavior.TextViewBehavior"

Solution 3

If you are using AndroidX (open-source project that the Android team uses to develop, test, package, version and release libraries within Jetpack) then you need to update XML.

Find your element here and replace:

Support:

android.support.design.widget.FloatingActionButton

AndroidX:

com.google.android.material.floatingactionbutton.FloatingActionButton

Solution 4

If you are using BottomSheet in Android X you must use

app:layout_behavior="@string/bottom_sheet_behavior"

if not then use

app:layout_behavior="android.support.design.widget.BottomSheetBehavior"

Solution 5

In case your app has a different package ID than your actual package structure, make sure you specify the full path to your custom behavior class:

<android.support.design.widget.FloatingActionButton
        ...
        app:layout_behavior="com.example.xyzreader.ScrollingFABBehavior"/>
Share:
29,431
Aleksey Leonov
Author by

Aleksey Leonov

Updated on December 14, 2021

Comments

  • Aleksey Leonov
    Aleksey Leonov over 2 years

    I new in android and I've troubles with FloatingActionButton behaivors

    My custom behavoir class:

    public class ScrollingFABBehavior extends FloatingActionButton.Behavior {
        private static final String TAG = "ScrollingFABBehavior";
    
        public ScrollingFABBehavior(Context context, AttributeSet attrs,
                Handler mHandler) {
            super();
        }
    
        @Override
        public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout,
                FloatingActionButton child, View directTargetChild, View target,
                int nestedScrollAxes) {
            return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL
                    || super.onStartNestedScroll(coordinatorLayout, child,
                            directTargetChild, target, nestedScrollAxes);
        }
    
        @Override
        public void onNestedScroll(CoordinatorLayout coordinatorLayout,
                FloatingActionButton child, View target, int dxConsumed,
                int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
            super.onNestedScroll(coordinatorLayout, child, target, dxConsumed,
                    dyConsumed, dxUnconsumed, dyUnconsumed);
            if (dyConsumed > 0 && child.getVisibility() == View.VISIBLE) {
                child.hide();
            } else if (dyConsumed < 0 && child.getVisibility() == View.GONE) {
                child.show();
            }
        }
    
        @Override
        public void onStopNestedScroll(CoordinatorLayout coordinatorLayout,
                FloatingActionButton
                child, View target) {
            super.onStopNestedScroll(coordinatorLayout, child, target);
        }
    }
    

    Fragment XML:

    ...

    <android.support.design.widget.FloatingActionButton
            android:id="@+id/share_fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="@dimen/fab_margin"
            android:contentDescription="@string/action_share"
            android:elevation="@dimen/fab_elevation"
            android:src="@drawable/ic_share"
            app:layout_behavior=".ScrollingFABBehavior"/>
    
    </android.support.design.widget.CoordinatorLayout>
    

    RuntimeError when fragment inflate xml:

    07-14 08:52:43.904 30785-30785/com.example.xyzreader E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: com.example.xyzreader, PID: 30785
                                                                           android.view.InflateException: Binary XML file line #115: Could not inflate Behavior subclass com.example.xyzreader.ui.ScrollingFABBehavior
                                                                           Caused by: java.lang.RuntimeException: Could not inflate Behavior subclass com.example.xyzreader.ui.ScrollingFABBehavior
                                                                               at android.support.design.widget.CoordinatorLayout.parseBehavior(CoordinatorLayout.java:615)
                                                                               at android.support.design.widget.CoordinatorLayout$LayoutParams.<init>(CoordinatorLayout.java:2652)
    

    e.t.c

    Whats wrong?