2
votes

Here is my Fab Activity

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);
}

}

Here is my Main Activity

 // 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.
        }
    });

Here is my logcat

Process: com.teepe.teepe, PID: 29259 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.teepe.teepe/com.teepe.teepe.MainActivity}: java.lang.ClassCastException: android.support.design.widget.FloatingActionButton cannot be cast to com.teepe.teepe.Fab at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 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) at android.app.Activity.performCreate(Activity.java:6662) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)  at android.app.ActivityThread.-wrap12(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:154)  at android.app.ActivityThread.main(ActivityThread.java:6077)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 

1
Please show your XML file so we can have a look into this :)Brandon

1 Answers

1
votes

As the error says, 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), in your MainActivity, check this line of code from the library you used:

<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" />

Change your <path.to.your.FloatingActionButton to <path.to.your.Fab in the layout of MainActivity (preferably, activity_main.xml) in which your R.id.fab has been declared.

Hope this should fix your error. Click on the check mark beside the answer to toggle it from greyed out to fill in if it does.