Tuesday 16 February 2016

android - I'm using gowong/material-sheet-fab but it's showing me errors .Can anyone help me out?



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) 



Answer



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:



       android:id="@+id/fab"
style="@style/Widget.MaterialSheetFab.Fab"
android:layout_alignParentBottom="true"

android:layout_alignParentEnd="true"
android:layout_alignParentRight="true" />


Change your to 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.


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...