在滑動時顯示和隱藏 FloatingActionButton

要使用預設動畫顯示和隱藏 FloatingActionButton,只需呼叫方法 show()hide()。將 FloatingActionButton 保留在 Activity 佈局中而不是將其放入片段中是一種很好的做法,這允許預設動畫在顯示和隱藏時起作用。

這是一個 ViewPager 的例子:

  • 三個標籤
  • 顯示 FloatingActionButton 作為第一個和第三個 Tab
  • 隱藏中間選項卡上的 FloatingActionButton
public class MainActivity extends AppCompatActivity {

    FloatingActionButton fab;
    ViewPager viewPager;

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

        fab = (FloatingActionButton) findViewById(R.id.fab);
        viewPager = (ViewPager) findViewById(R.id.viewpager);

        // ...... set up ViewPager ............

        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                if (position == 0) {
                    fab.setImageResource(android.R.drawable.ic_dialog_email);
                    fab.show();
                } else if (position == 2) {
                    fab.setImageResource(android.R.drawable.ic_dialog_map);
                    fab.show();
                } else {
                    fab.hide();
                }
            }

            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}

            @Override
            public void onPageScrollStateChanged(int state) {}
        });

        // Handle the FloatingActionButton click event:
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int position = viewPager.getCurrentItem();
                if (position == 0) {
                    openSend();
                } else if (position == 2) {
                    openMap();
                }
            }
        });

    }
}

結果:

https://i.stack.imgur.com/XrJ3N.gif