1

我收到此错误:

原因:java.lang.ClassCastException:com.github.clans.fab.FloatingActionButton 无法转换为 android.support.design.widget.FloatingActionButton。

这是我的代码:

车辆.xml

   <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:fab="http://schemas.android.com/tools">


   <com.github.clans.fab.FloatingActionMenu
        android:id="@+id/material_design_android_floating_action_menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
         android:layout_marginBottom="64dp"
         android:layout_marginRight="16dp"
        fab:menu_animationDelayPerItem="55"
        fab:menu_backgroundColor="@android:color/transparent"
        fab:menu_buttonSpacing="0dp"
        fab:menu_colorNormal="#3F51B5"
        fab:menu_colorPressed="#3F51B5"
        fab:menu_colorRipple="#3F51B5"
        fab:menu_fab_size="normal"
        fab:menu_icon="@drawable/ic_add"
        fab:menu_labels_colorNormal="#3F51B5"
        fab:menu_labels_colorPressed="#3F51B5"
        fab:menu_labels_colorRipple="#66efecec"
        fab:menu_labels_cornerRadius="3dp"
        fab:menu_labels_ellipsize="none"
        fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
        fab:menu_labels_margin="0dp"
        fab:menu_labels_maxLines="-1"
        fab:menu_labels_padding="8dp"
        fab:menu_labels_position="left"
        fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
        fab:menu_labels_showShadow="true"
        fab:menu_labels_singleLine="false"
        fab:menu_labels_textColor="#f2f1f1"
        fab:menu_labels_textSize="15sp"
        fab:menu_openDirection="up"
        fab:menu_shadowColor="#66aff198"
        fab:menu_shadowRadius="4dp"
        fab:menu_shadowXOffset="1dp"
        fab:menu_shadowYOffset="4dp"
        fab:menu_showShadow="true">

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/material_design_floating_action_menu_item1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/car"
            fab:fab_label="Add Car"
            fab:fab_size="mini"
            fab:menu_colorNormal="#3F51B5"/>
       </com.github.clans.fab.FloatingActionMenu>
   </RelativeLayout>

Vechile.java

FloatingActionMenu materialDesignFAM;
FloatingActionButton floatingActionButton1;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.vehicle);
    materialDesignFAM = (FloatingActionMenu) 
    findViewById(R.id.material_design_android_floating_action_menu);
    floatingActionButton1 = (FloatingActionButton) 
    findViewById(R.id.material_design_floating_action_menu_item1);

    floatingActionButton1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {


           Intent intent = new Intent(VehicleActivity.this, Brand 
 Activity.class);

            startActivity(intent);
        }
    });

}
}
4

3 回答 3

9

您的活动正在从支持库中导入,并且android.support.design.widget.FloatingActionButton在您使用 xml 中的外部库元素时导入com.github.clans.fab.FloatingActionButton。使用正确的进口,你不会面对ClassCastException

确保您的活动有

import com.github.clans.fab.FloatingActionButton

并不是

import android.support.design.widget.FloatingActionButton

类似的事情FloatingActionMenu。确保您的导入以您正在使用的库的包名称开头。通常人们会因为 Android Studio 自动导入而面临这个错误时间

于 2017-06-12T19:02:37.497 回答
0

看看你是否在调用按钮对象时添加了一个 Button 而不是 FloatingActionButton。只需简单地将 FloatingActionButton /您的按钮对象名称 /。

于 2017-08-26T06:53:06.697 回答
0

您可以像这样简单地使用android的FAB本身:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_marginRight="16dp"
    android:layout_marginBottom="20dp"
    app:backgroundTint="@color/pink"
    android:src="@mipmap/add_icon"/>

您可以在上面的小部件本身中自定义您喜欢的 FAB。并这样称呼它:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

让生活更轻松!

于 2017-06-13T13:14:52.373 回答