我正在使用gowong / material-sheet-fab,但它向我显示错误。有人可以帮我吗?

时间:2019-06-13 23:57:18

标签: android

这是我的工厂活动

public class Fab extends FloatingActionButton implements AnimatedFab {

public Fab(Context context) {
    super(context);
}


@Override
public void show() {
    show(0, 0);
}
@SuppressLint("RestrictedApi")
@Override
public void show(float translationX, float translationY) {

    setVisibility(View.VISIBLE);
}

/**
 * Hides the FAB.
 */
@SuppressLint("RestrictedApi")
@Override
public void hide() {

    setVisibility(View.INVISIBLE);
}

}

这是我的主要活动

 // MATERIAL ANIMATED FAB
    Fab fab = findViewById(R.id.fab);
    View sheetView = findViewById(R.id.fab_sheet);
    View overlay = findViewById(R.id.overlay);
    int sheetColor = getResources().getColor(R.color.fab_sheet_color);
    int fabColor = getResources().getColor(R.color.fab_color);

    // Initialize material sheet FAB
    materialSheetFab = new MaterialSheetFab<>(fab, sheetView, overlay,
            sheetColor, fabColor);
    materialSheetFab.setEventListener(new MaterialSheetFabEventListener() {
        @Override
        public void onShowSheet() {
            // Called when the material sheet's "show" animation starts.

        }

        @Override
        public void onSheetShown() {
            // Called when the material sheet's "show" animation ends.

        }

        @Override
        public void onHideSheet() {
            // Called when the material sheet's "hide" animation starts.
        }

        public void onSheetHidden() {
            // Called when the material sheet's "hide" animation ends.
        }
    });

这是我的logcat

  

进程:com.teepe.teepe,PID:29259       java.lang.RuntimeException:无法启动活动ComponentInfo {com.teepe.teepe / com.teepe.teepe.MainActivity}:java.lang.ClassCastException:android.support.design.widget.FloatingActionButton无法转换为com.teepe。聚四氟乙烯           在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)           在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)           在android.app.ActivityThread.-wrap12(ActivityThread.java)           在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1460)           在android.os.Handler.dispatchMessage(Handler.java:102)           在android.os.Looper.loop(Looper.java:154)           在android.app.ActivityThread.main(ActivityThread.java:6077)           在java.lang.reflect.Method.invoke(本机方法)           在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:866)           在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)        由以下原因引起:java.lang.ClassCastException:android.support.design.widget.FloatingActionButton无法转换为com.teepe.teepe.Fab           在com.teepe.teepe.MainActivity.onCreate(MainActivity.java:95)           在android.app.Activity.performCreate(Activity.java:6662)           在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)           在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)           在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)           在android.app.ActivityThread.-wrap12(ActivityThread.java)           在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1460)           在android.os.Handler.dispatchMessage(Handler.java:102)           在android.os.Looper.loop(Looper.java:154)           在android.app.ActivityThread.main(ActivityThread.java:6077)           在java.lang.reflect.Method.invoke(本机方法)           在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:866)           com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)

1 个答案:

答案 0 :(得分:1)

如错误所述,Caused by: java.lang.ClassCastException: android.support.design.widget.FloatingActionButton cannot be cast to com.teepe.teepe.Fab at com.teepe.teepe.MainActivity.onCreate(MainActivity.java:95)在您的MainActivity中,从您使用的库中检查以下line代码:

<com.gordonwong.materialsheetfab.sample.Fab
       android:id="@+id/fab"
       style="@style/Widget.MaterialSheetFab.Fab"
       android:layout_alignParentBottom="true"
       android:layout_alignParentEnd="true"
       android:layout_alignParentRight="true" />

在已经声明了<path.to.your.FloatingActionButton的{​​{1}}(最好是<path.to.your.Fab)的布局中,将MainActivity更改为activity_main.xml

希望这可以解决您的错误。单击答案旁边的复选标记,以将其从灰色切换为填写。