Ale*_*nov 14 java android coordinator-layout
我是android的新手,我的FloatingActionButton行为很麻烦
我的自定义行为类:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
片段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>
Run Code Online (Sandbox Code Playgroud)
片段膨胀xml时的RuntimeError:
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)
Run Code Online (Sandbox Code Playgroud)
等等
怎么了?
小智 32
将以下两个构造函数添加到您的FooterBehavior:
public FooterBehavior() {
}
public FooterBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
Run Code Online (Sandbox Code Playgroud)
Ram*_*bra 11
如果您在 Android X 中使用 BottomSheet,则必须使用
app:layout_behavior="@string/bottom_sheet_behavior"
Run Code Online (Sandbox Code Playgroud)
如果没有,那么使用
app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
AndroidX:
com.google.android.material.floatingactionbutton.FloatingActionButton
Run Code Online (Sandbox Code Playgroud)
如果您的应用程序的包 ID 与实际包结构不同,请确保指定自定义行为类的完整路径:
<android.support.design.widget.FloatingActionButton
...
app:layout_behavior="com.example.xyzreader.ScrollingFABBehavior"/>
Run Code Online (Sandbox Code Playgroud)
确保您使用的是自定义行为类的正确路径。
例如:
app:layout_behavior="net.company.myapp.view.behavior.TextViewBehavior"
解决了。改成app:layout_behavior=".ScrollingFABBehavior"/>app:layout_behavior=".ui.ScrollingFABBehavior"/>
| 归档时间: |
|
| 查看次数: |
14997 次 |
| 最近记录: |