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

Posted

技术标签:

【中文标题】我正在使用 gowong/material-sheet-fab 但它显示错误。有人可以帮我吗?【英文标题】:I'm using gowong/material-sheet-fab but it's showing me errors .Can anyone help me out? 【发布时间】:2019-10-28 14:26:46 【问题描述】:

这是我的 Fab 活动

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

这是我的日志

进程:com.teepe.teepe,PID:29259 java.lang.RuntimeException:无法启动活动 ComponentInfocom.teepe.teepe/com.teepe.teepe.MainActivity:java.lang.ClassCastException:android.support.design.widget.FloatingActionButton 无法转换为 com.teepe。 teepe.Fab 在 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)

【问题讨论】:

请出示您的 XML 文件,以便我们查看 :) 【参考方案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" />

在您的R.id.fab 已声明的MainActivity(最好是activity_main.xml)的布局中,将您的&lt;path.to.your.FloatingActionButton 更改为&lt;path.to.your.Fab

希望这能解决您的错误。单击答案旁边的复选标记以将其从灰色切换为填充(如果有)。

【讨论】:

是的,我更正了这个错误消失了,但现在它显示另一个错误无法启动活动 ComponentInfocom.teepe.teepe/com.teepe.teepe.MainActivity:android.view.InflateException:二进制XML 文件第 12 行:二进制 XML 文件第 90 行:膨胀类 com.teepe.teepe.Fab 时出错 在您实现的同一个库上查看此已关闭问题,并出现同样的错误:github.com/gowong/material-sheet-fab/issues/19

以上是关于我正在使用 gowong/material-sheet-fab 但它显示错误。有人可以帮我吗?的主要内容,如果未能解决你的问题,请参考以下文章

我如何知道 AVAudioPlayer 是不是正在使用文件

我正在使用 IdentityServer4,我正在尝试使用访问令牌访问同一服务器上的其他 API 端点,总是收到 401

访问我加载的 .pdf 页面(使用 pdfbox)(我正在使用 RPG)

我正在使用 asyncio,但异步函数正在使用 await asyncio.sleep(5) 阻塞其他异步函数

我怎么知道,犰狳正在我的 ARM 上使用 openblas?

如何检查我正在使用的数据表版本