Я играл с fab в библиотеке дизайна поддержки, когда я запустил эту проблему. Я заменил метод onCreate в шаблоне Blank Activity по умолчанию в Android Studio, это выглядит так:
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)
.
Вот видео о том, что происходит, когда я поднимаю мой палец и когда я оставьте мой палец на экране до конца и все.
Почему это происходит?