我在使用支持设计库中的fab时遇到了问题。我替换了Android Studio中默认的空白活动模板中的onCreate方法,如下所示:
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.animation.TranslateAnimation;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TranslateAnimation anim = new TranslateAnimation(0, -500, 0, -500);
anim.setDuration(1000);
anim.setFillEnabled(true);
anim.setFillAfter(true);
fab.startAnimation(anim);
}
});
fab.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
TranslateAnimation anim = new TranslateAnimation(0, -500, 0, -500);
anim.setDuration(1000);
anim.setFillEnabled(true);
anim.setFillAfter(true);
fab.startAnimation(anim);
return true;
}
});
}
}
所以基本上,我添加了一个 onClickListener 和一个 onLongClickListener,将 fab 移动了 500idks,但问题是它的工作方式不像应该的那样。
当我正常点击它时,什么也不会发生,这本身就很奇怪。这里有一个视频展示了它的情况。
当我长按它时,它会像应该的那样进行动画,但只有在我持续按住它时才会动画,而且无论动画是否完成,每当我松开手指时,它都会回到原始位置,尽管我设置了 setFillEnabled(true)
和 setFillAfter(true)
。
这里有一些视频,展示了当我 抬起 手指时和当我 离开 屏幕直到结束以及 全部 的情况。
FloatingActionButton fab
声明为全局变量。 - Neo