【发布时间】:2016-01-27 19:22:03
【问题描述】:
当我遇到这个问题时,我正在使用支持设计库中的晶圆厂。 我替换了 Android Studio 中默认的 Blank Activity 模板中的 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,但问题是它不能像预期的那样工作。
当我点击它时,通常什么都不会发生,这开始时很奇怪。这是正在发生的video。
当我长按它时,它会像我应该的那样动画,但只有当我继续按下时,每当我抬起手指时,它都会回到原始位置,无论动画是否完成,即使我设置了@987654327 @ 和 setFillAfter(true)。
这里是当我lift我的手指和我leave我的手指在屏幕上直到最后和everything时发生的视频。
为什么会这样?
【问题讨论】:
-
我觉得你应该声明
FloatingActionButton fab是一个全局变量 -
@MrNeo 并没有什么不同
-
我在 Nexus 4 上尝试过,版本为 5.1.1。它可以按您的预期工作,并且没有您在设置中看到的问题。
-
@lewis 我在 4.4.4 上对其进行了测试,根据源代码回退到不同的实现。所以我想这解决了一些谜团。感谢您的评论