Grałem z fab w bibliotece projektowania wsparcia, kiedy uruchomiłem inti w tym wydaniu. Wymieniłem onCreate metodę w szablonie domyślnym Blank działalność w Android Studio, to jak to wygląda:Floating Action Button animation Issue
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;
}
});
}
}
Więc zasadniczo I dodaje onClickListener oraz onLongClickListener że przełoży się Fab 500idks, ale problem jest to, że nie działa tak, jak powinno.
Kiedy klikam, normalnie nic się nie dzieje, co jest dziwne na początek. Oto dzieje się video.
Po długim naciśnięciu na nią animuje się tak, jak powinienem, ale tylko jeśli będę naciskać, a kiedy podniosę palec, wróci do pierwotnej pozycji, niezależnie od tego, czy animacja jest kompletna, czy nie, mimo że ustawiłem setFillEnabled(true)
i setFillAfter(true)
.
Oto filmy z tego, co się dzieje, gdy I lift mój palec i kiedy leave mój palec na ekranie do końca i everything.
Dlaczego tak się dzieje?
myślę, że należy zadeklarować 'FloatingActionButton fab' jest to zmienne globalne –
@MrNeo to nie popełniła różnica – Olumide
i wypróbowałem to na Nexus 4, w wersji 5.1.1. Działa zgodnie z oczekiwaniami i nie ma problemów z konfiguracją. –