简体   繁体   中英

FloatingAction menu button On click option is not working in android

I'm trying to create a circular Floating Action menu button with sliding tab. Main Floating action button is working but the on click event of the submenu button is not working.

Here is the xml file for the menu button:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_menu_compass"
    android:visibility="invisible"
    app:backgroundTint="@color/colorAccent"
    app:fabSize="mini" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab_2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_menu_myplaces"
    android:visibility="invisible"
    app:backgroundTint="@color/colorAccent"
    app:fabSize="mini" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab_3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_menu_share"
    android:visibility="invisible"
    app:backgroundTint="@color/colorAccent"
    app:fabSize="mini" />
</FrameLayout>

Activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<include
    android:id="@+id/app_bar"
    layout="@layout/app_bar" />



<android.support.v4.widget.DrawerLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/drawer_layout">
    <LinearLayout
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@android:color/white"
        >


        <android.support.design.widget.TabLayout
            android:id="@+id/sliding_tab"
            style="@style/MyCustomTabLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            app:tabMode="scrollable"
            />
        <android.support.design.widget.CoordinatorLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/coordinatorLayout">
            <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_margin="@dimen/fab_margin"
                app:srcCompat="@android:drawable/ic_dialog_email" />

            <include layout="@layout/fab_layout" />

        <android.support.v4.view.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            >

        </android.support.v4.view.ViewPager>

        </android.support.design.widget.CoordinatorLayout>


    </LinearLayout>

    <fragment
        android:id="@+id/nav_drawer"
        android:name="com.example.usaukglu.mywallet.NavigationDrawer"
        android:layout_width="@dimen/drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:layout="@layout/navigation_drawer"
        tools:layout="@layout/navigation_drawer" />



</android.support.v4.widget.DrawerLayout>


</LinearLayout>

Here is the MainActivity.java Class:

public class MainActivity extends AppCompatActivity  {

private Toolbar toolbar;
NavigationDrawer navigationDrawer;
DrawerLayout drawerLayout;

FloatingActionButton fab;
FloatingActionButton fab1;
FloatingActionButton fab2;
FloatingActionButton fab3;
CoordinatorLayout coordinatorLayout;

private boolean FAB_status=false;

Animation show_fab_1;
Animation hide_fab_1;
Animation show_fab_2;
Animation hide_fab_2;
Animation show_fab_3;
Animation hide_fab_3;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
    TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tab);
    toolbar = (Toolbar) findViewById(R.id.app_bar);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), MainActivity.this));
    tabLayout.setupWithViewPager(viewPager);

    navigationDrawer = (NavigationDrawer) getSupportFragmentManager().findFragmentById(R.id.nav_drawer);
    navigationDrawer.setUp(R.id.nav_drawer, drawerLayout, toolbar);

    coordinatorLayout= (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
    fab= (FloatingActionButton) findViewById(R.id.fab);
    fab1= (FloatingActionButton) findViewById(R.id.fab_1);
    fab2= (FloatingActionButton) findViewById(R.id.fab_2);
    fab3= (FloatingActionButton) findViewById(R.id.fab_3);

    show_fab_1= AnimationUtils.loadAnimation(getApplication(),R.anim.fab1_show);
    hide_fab_1= AnimationUtils.loadAnimation(getApplication(),R.anim.fab1_hide);
    show_fab_2= AnimationUtils.loadAnimation(getApplication(),R.anim.fab2_show);
    hide_fab_2= AnimationUtils.loadAnimation(getApplication(),R.anim.fab2_hide);
    show_fab_3= AnimationUtils.loadAnimation(getApplication(),R.anim.fab3_show);
    hide_fab_3= AnimationUtils.loadAnimation(getApplication(),R.anim.fab3_hide);


    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if (FAB_status == false) {
                //Display FAB menu
                expandFab();
                FAB_status = true;
            } else {
                //Close FAB menu
                hideFAB();
                FAB_status = false;
            }
        }
    });

    fab1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplication(), "Floating Action Button 1", Toast.LENGTH_SHORT).show();
        }
    });

    fab2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplication(), "Floating Action Button 2", Toast.LENGTH_SHORT).show();
        }
    });

    fab3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplication(), "Floating Action Button 3", Toast.LENGTH_SHORT).show();
        }
    });

}

Add to the XML Layout:

<android.support.design.widget.FloatingActionButton
        android:id="@+id/myFAB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/your_icon"
        app:elevation="4dp"
        ... />

Add to the code behind:

FloatingActionButton myFab = (FloatingActionButton) myView.findViewById(R.id.myFAB); 
myFab.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
          // TODO something when floating action menu third item clicked
    } 
});

For more details given follow link

FloatingActionButton example with Support Library

http://www.viralandroid.com/2016/02/android-floating-action-menu-example.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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