package com.github.clans.fab.sample; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.ActionBarActivity; import android.view.View; import android.view.animation.AnimationUtils; import android.widget.AbsListView; import android.widget.ArrayAdapter; import android.widget.ListView; import com.github.fab.sample.R; import com.github.clans.fab.FloatingActionButton; import java.util.ArrayList; import java.util.List; import java.util.Locale; public class MainActivity extends ActionBarActivity { private int mPreviousVisibleItem; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); Locale[] availableLocales = Locale.getAvailableLocales(); List<String> locales = new ArrayList<>(); for (Locale locale : availableLocales) { locales.add(locale.getDisplayName()); } ListView listView = (ListView) findViewById(R.id.list); listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, android.R.id.text1, locales)); final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.hide(false); new Handler().postDelayed(new Runnable() { @Override public void run() { fab.show(true); fab.setShowAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.show_from_bottom)); fab.setHideAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.hide_to_bottom)); } }, 300); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, FloatingMenusActivity.class)); } }); listView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (firstVisibleItem > mPreviousVisibleItem) { fab.hide(true); } else if (firstVisibleItem < mPreviousVisibleItem) { fab.show(true); } mPreviousVisibleItem = firstVisibleItem; } }); } }