13

Ich versuche, eine android.support.design.widget.FloatingActionButton zu animieren, die an meine AppBarLayout angeheftet ist. Ich kann es innerhalb des Layout-XML einstellen und es zeigt sich gut. Allerdings mache ich einen Shared-Element-Übergang zu diesem Layout und der FAB wird angezeigt, bevor die Ansicht festgelegt wird. Ich habe versucht, die Sichtbarkeit auf GONE und INVISIBLE zu setzen, aber sie scheinen ignoriert zu werden, wenn der Layout_Anchor im Layout-XML festgelegt ist. Gibt es das überhaupt?Set layout_anchor zur Laufzeit auf FloatingActionButton

Ich möchte die Aktivität mit dem freigegebenen Element Übergang laden und dann in meinem FAB einblenden. Ich kann den FAB nur unter Last nicht verstecken. Ich könnte es tun, ohne das Layout_Anchor zu verwenden, aber es lieber behalten, wenn möglich.

Antwort

29

Wenn Sie einen FAB mit dem app:layout_anchor Attribut, und Sie wollen, dass die Sichtbarkeit setzen Sie so etwas wie diese verwenden sollten:

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) fab.getLayoutParams(); 
params.setAnchorId(View.NO_ID); 
fab.setLayoutParams(params); 
fab.setVisibility(View.GONE); 

Wenn Sie die app:layout_anchor dinamically einstellen möchten, können Sie den gleichen Code verwenden :

CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams(); 
p.setAnchorId(xxxx); 
fab.setLayoutParams(p); 
+0

Das sieht sehr vielversprechend aus. Was ist mit der Einstellung von layout_anchorGravity auf diese Weise? – Bignadad

+0

Ich kann die layout_anchorGravity in der Layout-XML und einfach die Anker-ID wie oben erwähnt setzen. Das ist toll! Danke – Bignadad

+0

Dies funktioniert für die dynamische Einstellung des Ankers, es löst jedoch nicht das Problem mit dem Übergang von gemeinsam genutzten Elementen [in dieser Frage] (https://stackoverflow.com/questions/31804170/android-shared-element-transition-between- Zwei-Aktivitäten-tut-nicht-arbeiten). Den Anker zu setzen, scheint die Animation zu borken. Ohne einen Anker zu setzen, scheinen die Animationen gut zu funktionieren. –