这是我的工厂活动
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)
答案 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
。
希望这可以解决您的错误。单击答案旁边的复选标记,以将其从灰色切换为填写。