Ziel dieses Projekts ist es, eine funktionierende Page-Flip-Implementierung zur Verwendung in ListView bereitzustellen. Hergestellt in [Yalantis] (https://yalantis.com/?utm_source=github)
Schauen Sie sich dieses [Projekt auf Dribbble] an (https://dribbble.com/shots/1758298-Find-Friends-Interaction?list=users&offset=35)
Sehen Sie, wie es auf [Youtube] funktioniert (https://www.youtube.com/watch?v=zNRPjS53m5w)
#Verwendung
Eine funktionierende Implementierung finden Sie im Beispielprojekt – Beispiel
Um die gleiche Rasteransicht zu erhalten, sollten Sie:
Binden Sie die Bibliothek als lokales Bibliotheksprojekt ein:
compile ' com.yalantis:flipviewpager:1.0.0 '
Erstellen Sie Ihr Hauptlayout. Es wird die Ansicht mit zwei zusammengeführten Elementen sein:
<!-- ... -->
< 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 " />
<!-- ... -->
Erstellen Sie ein Layout für die Anzeige zusätzlicher Informationen für jedes zusammengeführte Element:
<!-- ... -->
< 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 >
Erstellen Sie Ihren Adapter und erweitern Sie ihn von BaseFlipAdapter<T>
class FriendsAdapter extends BaseFlipAdapter < Friend > {
@ Override
public View getPage ( int position ,
View convertView ,
ViewGroup parent ,
Friend friend1 ,
Friend friend2 ) {
// ...
}
class FriendsHolder {
// ...
}
}
Legen Sie Ihren Adapter in ListView
fest
final ListView friends = ( ListView ) findViewById ( R . id . friends );
friends . setAdapter ( new FriendsAdapter ( this , Utils . friends , settings ));
Sie können Klicks wie in der regulären ListView
verarbeiten
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 ();
}
});
Weitere Optionen werden bald hinzugefügt :)
#Anpassung
Zuerst wird die Seite zum Anpassen angezeigt. Erstellen Sie ein FlipSettings-Objekt und übergeben Sie es an den Adapter
FlipSettings settings = new FlipSettings . Builder (). defaultPage ( 1 ). build ();
#Kompatibilität
Wir würden uns sehr freuen, wenn Sie uns Links zu Ihren Projekten senden, in denen Sie unsere Komponente einsetzen. Senden Sie einfach eine E-Mail an [email protected]. Teilen Sie uns mit, wenn Sie Fragen oder Vorschläge zur Animation haben.
PS: Wir werden noch mehr Großartiges in Code und ein Tutorial veröffentlichen, wie man die Benutzeroberfläche für Android (iOS) besser als besser macht. Bleiben Sie dran!
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.