Ce projet vise à fournir une implémentation de retournement de page fonctionnelle à utiliser dans ListView. Fabriqué dans [Yalantis] (https://yalantis.com/?utm_source=github)
Vérifiez ce [projet sur Dribbble] (https://dribbble.com/shots/1758298-Find-Friends-Interaction?list=users&offset=35)
Découvrez comment cela fonctionne sur [Youtube] (https://www.youtube.com/watch?v=zNRPjS53m5w)
#Usage
Pour une implémentation fonctionnelle, jetez un œil à l'exemple de projet - exemple
Pour obtenir la même vue en forme de grille, vous devez :
Inclure la bibliothèque comme projet de bibliothèque locale :
compile ' com.yalantis:flipviewpager:1.0.0 '
Créez votre mise en page principale, ce sera la vue avec 2 éléments fusionnés :
<!-- ... -->
< ImageView
android : id = " @+id/first "
xmlns : android = " http://schemas.android.com/apk/res/android "
android : layout_width = " 0dp "
android : layout_weight = " 1 "
android : contentDescription = " left image "
android : layout_height = " wrap_content "
android : scaleType = " fitXY " />
< LinearLayout
android : layout_width = " 1dp "
android : layout_weight = " 0 "
android : background = " #000000 "
android : layout_height = " fill_parent " />
< ImageView
android : id = " @+id/second "
android : layout_width = " 0dp "
android : layout_weight = " 1 "
android : contentDescription = " right image "
android : layout_height = " wrap_content "
android : scaleType = " fitXY " />
<!-- ... -->
Créez une mise en page pour afficher des informations supplémentaires pour chaque élément fusionné :
<!-- ... -->
< com .yalantis.flip.sample.views.FontTextView
style = " @style/TextView.Nickname "
android : id = " @+id/nickname " />
< LinearLayout
android : layout_below = " @+id/nickname "
android : id = " @+id/interestsPrimary "
style = " @style/LinearLayout.Interests " >
< com .yalantis.flip.sample.views.FontTextView
style = " @style/TextView.Interest "
android : id = " @+id/interest_1 " />
<!-- ... -->
</ LinearLayout >
Créez votre adaptateur et étendez-le depuis BaseFlipAdapter<T>
class FriendsAdapter extends BaseFlipAdapter < Friend > {
@ Override
public View getPage ( int position ,
View convertView ,
ViewGroup parent ,
Friend friend1 ,
Friend friend2 ) {
// ...
}
class FriendsHolder {
// ...
}
}
Définissez votre adaptateur dans ListView
final ListView friends = ( ListView ) findViewById ( R . id . friends );
friends . setAdapter ( new FriendsAdapter ( this , Utils . friends , settings ));
Vous pouvez gérer les clics comme dans ListView
standard
friends . setOnItemClickListener ( new AdapterView . OnItemClickListener () {
@ Override
public void onItemClick ( AdapterView <?> parent , View view , int position , long id ) {
Friend friend = ( Friend ) friends . getAdapter (). getItem ( position );
Toast . makeText ( FriendsActivity . this , friend . getNickname (), Toast . LENGTH_SHORT ). show ();
}
});
Plus d'options seront bientôt ajoutées :)
#Personnalisation
Pour personnaliser la page sera affichée en premier - créez et transmettez l'objet FlipSettings dans l'adaptateur
FlipSettings settings = new FlipSettings . Builder (). defaultPage ( 1 ). build ();
#Compatibilité
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 2017, 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.