RuntimeException: Could not inflate Behavior subclass
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"/>
Aleksey Leonov
Updated on December 14, 2021Comments
-
Aleksey Leonov over 2 years
I new in android and I've troubles with
FloatingActionButton
behaivorsMy 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?