Ich schaute auf die Twitter-App auf meinem Handy.Android: Pin TabLayout nach oben von Scrollview
Sie können sehen, dass, wenn ein Benutzer einen Bildlauf nach oben, eigentlich die tabLayout nur Stifte sich auf der Unterseite der Symbolleiste schön und überhaupt nicht bewegen.
Ich dachte, vielleicht haben sie es nur durch die gesamten oberen Teil der App (auf dem Rasen das Profilbild, das Profil Tapete des Fahrrads, der Text) setzen, in eine CollapsingToolBarLayout und AppBarLayout aber eigentlich nur die Profiltapeten mit dem Fahrrad auf dem Rasen ist Teil des CollapsingToolBarLayout und AppBarLayout, da dies der einzige Teil ist, der tatsächlich kollabiert. Der Textteil scrollt einfach nach oben und der TabLayout setzt sich nur unterhalb der Symbolleiste an.
Ich habe die Credits auf der Twitter App gelesen und es scheint, dass sie das SlidingTabLayout verwendet haben, um ihre Wirkung zu erzielen. SlidingTabLayout ist ähnlich wie TabLayout, wobei Letzteres in der Support-Bibliothek unterstützt wird.
Es sieht aus wie ein recht häufiges Muster, das auch von den Mainstream-Anwendungen heutzutage verwendet wird -
Google+ App es in ihrem Profil Blick auf die App verwendet:
Facebook Moments verwendet sie in ihrer App:
Irgendeine Idee, wie sie alle geschafft haben, dies zu tun?
Ich möchte etwas ähnliches zu all diesen Apps machen.
Meine Anforderungen sind:
- eine collapsingToolBarLayout haben, dass, wenn Sie
- eine Textview unter dem collapsingToolBarLayout haben nach oben kollabiert, die unter dem toolBar würde scrollen und „verstecken“, wenn es zusammenbricht vollständig.
- Haben Sie eine TabLayout unterhalb der Textansicht, die "Stick" auf der TabLayout, wenn Sie die Textansicht unter der kollabierendenToolBarLayout scrollen.
- Haben Sie einen recyclerview unter dem tabLayout so dass, wenn Sie in der tabLayout auf jeden Registerkarte klicken, recyclerview zwischen Listen von „Tweets“, „Fotos“, „Favoriten“ usw.
Ich sah zwei Schalter wird Andere Fragen, die über SO gestellt wurden:
Can the tab selection indicator of TabLayout be pinned to the top of the screen while scrolling?. Die Antwort hier scheint das Verhalten des TabLayouts zu ändern, aber ich bezweifle, dass das Ändern des Verhaltens tatsächlich das erzeugt, was die Twitter App tut. Wie ich bereits erwähnt habe, scheint die tabLayout außerhalb der CollapsingToolBarLayout und AppBarLayout sitzen und das Verhalten sollte nur wirksam sein, wenn es innerhalb der CollapsingToolBarLayout und AppBarLayout sitzt.
How to pin TabLaout at top of ScrollView?. Diese Frage fragt nach etwas ähnlich dem, was ich gefragt habe, gibt aber nicht genug Details und hat keine Antworten.
Das ist witzig, aber ich habe mir tatsächlich genau dieses Slenderdas Video angesehen und gedacht, dass es funktionieren würde, wenn ich zwei separate Collapsingtoolbarlayout erstellen würde. Werde das später versuchen. – Simon
Es tut eigentlich nicht ganz, was ich will, dass es zu tun.Wenn ich auf das Beispiel slendered schaue, wird das Beispiel nach oben und sowohl die tabLayout und die Symbolleiste verschwindet vom Bildschirm. Ich kann erreichen, dass es oben bleibt, indem ich scollFlag in exitUntilCollapsed ändere, aber dann bleiben die Textansicht und die tabLayout am oberen Rand der Symbolleiste, was ich nicht möchte. Ich möchte, dass die Textansicht auf dem Bildschirm und der TabLayout auf dem Bildschirm angezeigt wird. – Simon
Sie benötigen ein collasingBarLayout in dem Sie 2 Kinder haben 1. Werkzeugleiste mit Attribut collapsMode = "pin" und, 2. TextView mit Attribut collapseMode = "parallax" –