Téléchargez simplement le package à partir d'ici et ajoutez-le au chemin de classe de votre projet, ou utilisez simplement le dépôt maven :
Graduation :
' com.ramotion.foldingcell:folding-cell:1.2.3 '
SBT :
libraryDependencies += " com.ramotion.foldingcell " % " folding-cell " % " 1.2.3 "
Maven :
< dependency >
< groupId >com.ramotion.foldingcell</ groupId >
< artifactId >folding-cell</ artifactId >
< version >1.2.3</ version >
</ dependency >
com.ramotion.foldingcell.FoldingCell
à votre mise en page < com .ramotion.foldingcell.FoldingCell
xmlns : android = " http://schemas.android.com/apk/res/android "
android : id = " @+id/folding_cell "
android : layout_width = " match_parent "
android : layout_height = " wrap_content " >
</ com .ramotion.foldingcell.FoldingCell>
2. Ajoutez exactement deux éléments enfants à votre cellule. Le premier enfant ( content view ) représente toujours la disposition de l'état déplié et le deuxième enfant ( title view ) représente la disposition de l'état plié. Bien sûr, ces mises en page peuvent contenir n'importe quel nombre d'éléments enfants et elles peuvent être de n'importe quelle complexité, mais pour fonctionner correctement, il existe certaines limitations : la hauteur de la vue du contenu doit être au moins 2 fois supérieure à la hauteur de la vue du titre , et la hauteur de chacun des éléments enfants. ces mises en page doivent être définies sur android:layout_height="wrap_content"
. Si vous souhaitez définir la hauteur exacte dans dp
, vous pouvez définir la hauteur des éléments enfants dans votre propre mise en page dans la vue contenu ou la vue titre . En outre, vous devez masquer la disposition de votre affichage de contenu à l'aide android:visibility="gone"
.
< com .ramotion.foldingcell.FoldingCell
xmlns : android = " http://schemas.android.com/apk/res/android "
android : id = " @+id/folding_cell "
android : layout_width = " match_parent "
android : layout_height = " wrap_content " >
< FrameLayout
android : id = " @+id/cell_content_view "
android : layout_width = " match_parent "
android : layout_height = " wrap_content "
android : background = " @android:color/holo_green_dark "
android : visibility = " gone " >
< TextView
android : layout_width = " match_parent "
android : layout_height = " 250dp " />
</ FrameLayout >
< FrameLayout
android : id = " @+id/cell_title_view "
android : layout_width = " match_parent "
android : layout_height = " wrap_content " >
< TextView
android : layout_width = " match_parent "
android : layout_height = " 100dp "
android : background = " @android:color/holo_blue_dark " />
</ FrameLayout >
</ com .ramotion.foldingcell.FoldingCell>
3. Presque terminé ! Il reste deux étapes ! Pour une animation correcte, vous devez configurer deux propriétés sur le(s) élément(s) racine de votre cellule pliante :
android:clipChildren="false"
android:clipToPadding="false"
4. Dernière étape ! Ajoutez onClickListener à votre cellule pliante dans MainActivity.java
pour activer/désactiver l'animation :
@ Override
protected void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( R . layout . activity_main );
// get our folding cell
final FoldingCell fc = ( FoldingCell ) findViewById ( R . id . folding_cell );
// attach click listener to folding cell
fc . setOnClickListener ( new View . OnClickListener () {
@ Override
public void onClick ( View v ) {
fc . toggle ( false );
}
});
}
5. Étape supplémentaire : personnalisation des paramètres de cellule. Pour l'instant, il existe trois paramètres principaux : la durée de l'animation, la couleur du verso et le nombre de retournements supplémentaires. Si les deux premiers ne posent pas de questions, le troisième nécessite quelques explications. C'est le nombre de retournements à exécuter après le premier retournement (principal). La valeur par défaut est 0
(choix automatique). Il existe également un quatrième paramètre supplémentaire : la hauteur de la caméra, il contrôle le niveau (profondeur) de l'effet 3D. Il existe deux manières de modifier les paramètres d'une cellule : À partir d'un fichier de présentation XML avec l'espace de noms res-auto
xmlns:folding-cell="http://schemas.android.com/apk/res-auto"
:
folding-cell:animationDuration="1000"
folding-cell:backSideColor="@color/bgBackSideColor"
folding-cell:additionalFlipsCount="2"
folding-cell:cameraHeight="30"
Ou à partir du code :
// get our folding cell
final FoldingCell fc = ( FoldingCell ) findViewById ( R . id . folding_cell );
// set custom parameters
fc . initialize ( 1000 , Color . DKGRAY , 2 );
// or with camera height parameter
fc . initialize ( 30 , 1000 , Color . DKGRAY , 2 );
Vous pouvez trouver cet exemple ainsi que d'autres, plus complexes, dans ce référentiel
Folding Cell est publié sous licence MIT. Voir LICENCE pour plus de détails.
Cette bibliothèque fait partie d'une sélection de nos meilleurs projets open source d'interface utilisateur
Si vous utilisez la bibliothèque open source dans votre projet, assurez-vous de créditer et de créer un lien vers www.ramotion.com
Essayez ce composant d'interface utilisateur et bien d'autres similaires dans notre application Android. Contactez-nous si vous êtes intéressé.