Vérifiez ce projet sur dribbble.
Vérifiez ce projet sur Behance.
Que Dieu bénisse l'Ukraine !
dépend de l'utilitaire d'animation d'Ozodrukh pour l'animation CircularReveal pour la version 2.3+
Tout d’abord, vous devez télécharger le sous-module d’animation avec la commande git submodule update --init
Ou vous pouvez ajouter une dépendance gradle avec la commande :
dependencies {
implementation ' com.github.yalantis:Side-Menu.Android:1.0.2 '
}
.
et commande :
repositories {
maven {
url " https://jitpack.io "
}
}
dependencies {
implementation ' com.github.ozodrukh:CircularReveal:(latest-release)@aar '
}
Pour ajouter une dépendance Gradle, vous devez ouvrir build.gradle (dans votre dossier d'application, pas dans un dossier de projet), puis copier et ajouter les dépendances dans le bloc de dépendances ;
pour le module CircularReveal
Ensuite, vous devez créer une disposition de superposition spéciale à afficher derrière la vue animée Circular Reveal
actuelle. Et pour ajouter tous les éléments au menu, vous devez tous les ajouter dans LinearLayout
< android .support.v4.widget.DrawerLayout
xmlns : android = " http://schemas.android.com/apk/res/android "
android : id = " @+id/drawer_layout "
android : layout_width = " match_parent "
android : layout_height = " match_parent " >
< io .codetail.widget.RevealFrameLayout
android : id = " @+id/conteiner_frame "
xmlns : android = " http://schemas.android.com/apk/res/android "
android : layout_width = " match_parent "
android : layout_height = " match_parent " >
< LinearLayout
android : id = " @+id/content_overlay "
android : layout_width = " match_parent "
android : layout_height = " match_parent "
android : orientation = " vertical " />
< LinearLayout
android : id = " @+id/content_frame "
android : layout_width = " match_parent "
android : layout_height = " match_parent "
android : orientation = " vertical " />
< android .support.v7.widget.Toolbar
android : id = " @+id/toolbar "
android : layout_height = " wrap_content "
android : layout_width = " match_parent "
android : minHeight = " ?attr/actionBarSize "
android : background = " ?attr/colorPrimary " />
</ io .codetail.widget.RevealFrameLayout>
< ScrollView
android : id = " @+id/scrollView "
android : scrollbarThumbVertical = " @android:color/transparent "
android : layout_width = " 80dp "
android : layout_height = " match_parent "
android : layout_gravity = " start|bottom " >
< LinearLayout
android : id = " @+id/left_drawer "
android : orientation = " vertical "
android : layout_width = " 80dp "
android : layout_height = " wrap_content "
android : divider = " @android:color/transparent "
android : dividerHeight = " 0dp "
android : background = " @android:color/transparent " >
<!-- Layout of Drawer -->
</ LinearLayout >
</ ScrollView >
</ android .support.v4.widget.DrawerLayout>
ViewAnimator viewAnimator = new ViewAnimator <>( ActionBarActivity . this ,
new ArrayList < Resourceble >(),
( LinearLayout ) findViewById ( R . id . left_drawer ),
contentFragment , drawerLayout );
//to open menu you have to override ActionBarDrawerToggle method
@ Override
public void onDrawerSlide ( View drawerView , float slideOffset ) {
super . onDrawerSlide ( drawerView , slideOffset );
if ( slideOffset > 0.6 && viewAnimator . getLinearLayout (). getChildCount () == 0 )
viewAnimator . showMenuContent ();
}
public void onDrawerClosed ( View view ) {
super . onDrawerClosed ( view );
viewAnimator . getLinearLayout (). removeAllViews ();
viewAnimator . getLinearLayout (). invalidate ();
}
Tous les éléments de menu doivent implémenter l'interface Resourceble
pour obtenir le nom de l'élément de menu et la résolution dessinable. Et tous les fragments doivent implémenter ScreenShotable
pour obtenir une capture d'écran d'un fragment.
Vous pouvez personnaliser les icônes que vous placez dans le menu ou ajouter des éléments supplémentaires. Simplement en modifiant la liste que vous analysez pour afficher l'animateur. Par exemple :
private List < SlideMenuItem > list = new ArrayList <>(); \ the list of menu items
SlideMenuItem menuItem0 = new SlideMenuItem ( ContentFragment . CLOSE , R . drawable . icn_close );
list . add ( menuItem0 );
SlideMenuItem menuItem = new SlideMenuItem ( ContentFragment . BUILDING , R . drawable . icn_1 ); f irst parameter is the id of menu item , the second is the icon resouce
list . add ( menuItem );
SlideMenuItem menuItem2 = new SlideMenuItem ( ContentFragment . BOOK , R . drawable . icn_2 );
list . add ( menuItem2 );
viewAnimator = new ViewAnimator <>( this , list , contentFragment , drawerLayout , this );
Nous serions très heureux si vous nous envoyiez des liens vers vos projets dans lesquels vous utilisez notre composant. Envoyez simplement un e-mail à [email protected] Et faites-nous savoir si vous avez des questions ou des suggestions concernant l'animation.
PS Nous allons publier plus de merveilles enveloppées dans du code et un tutoriel sur la façon de rendre l'interface utilisateur pour Android (iOS) meilleure que meilleure. Restez à l'écoute!
Copyright 2019, Yalantis
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.