简体   繁体   English

浮动动作按钮投放问题

[英]Floating Action Button cast issue

I am getting this error: 我收到此错误:

Caused by: java.lang.ClassCastException: com.github.clans.fab.FloatingActionButton cannot be cast to android.support.design.widget.FloatingActionButton. 造成原因:java.lang.ClassCastException:com.github.clans.fab.FloatingActionButton无法强制转换为android.support.design.widget.FloatingActionButton。

Here is my Code: 这是我的代码:

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

}
}

Your activity is importing from the support library and the import is android.support.design.widget.FloatingActionButton while you are using an external library element in your xml com.github.clans.fab.FloatingActionButton . 您的活动是从支持库导入的,而导入是android.support.design.widget.FloatingActionButton而您在xml com.github.clans.fab.FloatingActionButton中使用外部库元素时。 Use correct imports and you won't face ClassCastException 使用正确的导入,您将不会遇到ClassCastException

Make sure your activity has 确保您的活动有

import com.github.clans.fab.FloatingActionButton

and not 并不是

import android.support.design.widget.FloatingActionButton

Similar thing for FloatingActionMenu . FloatingActionMenu Make sure your import starts with the package name of the library you are using. 确保导入从所使用的库的软件包名称开始。 Normally people face this time of error because of auto importing by Android Studio 通常情况下,由于Android Studio自动导入,人们会遇到这个错误时间

You can simply use android's FAB itself like this: 您可以像这样简单地使用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"/>

You can customize the FAB however you like in the above widget itself. 您可以根据需要在上面的窗口小部件中自定义FAB。 And call it like this: 并这样称呼它:

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

Makes life easier! 让生活更轻松!

See that if u added a Button Instead of FloatingActionButton when calling a button object. 看到在调用按钮对象时是否添加了Button而不是FloatingActionButton。 just simply put FloatingActionButton /your button object name/. 只需简单地将FloatingActionButton /您的按钮对象名称/。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM