Laden Sie einfach das Paket hier herunter und fügen Sie es Ihrem Projektklassenpfad hinzu oder verwenden Sie einfach das Maven-Repo:
Gradle:
' 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
zu Ihrem Layout hinzu < 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. Fügen Sie Ihrer Zelle genau zwei untergeordnete Elemente hinzu. Das erste untergeordnete Element ( Inhaltsansicht ) stellt immer das entfaltete Zustandslayout dar und das zweite untergeordnete Element ( Titelansicht ) stellt immer das gefaltete Zustandslayout dar. Natürlich können diese Layouts eine beliebige Anzahl untergeordneter Elemente enthalten und beliebig komplex sein, aber um ordnungsgemäß zu funktionieren, gibt es einige Einschränkungen: Die Höhe der Inhaltsansicht muss mindestens doppelt so groß sein wie die Höhe der Titelansicht und die Höhe jedes einzelnen Elements Diese Layouts müssen auf android:layout_height="wrap_content"
eingestellt sein. Wenn Sie die genaue Höhe in dp
festlegen möchten, können Sie die Höhe für untergeordnete Elemente in Ihrem eigenen Layout in der Inhaltsansicht oder Titelansicht festlegen. Außerdem müssen Sie das Layout Ihrer Inhaltsansicht mit android:visibility="gone"
ausblenden.
< 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. Fast fertig! Es bleiben noch zwei Schritte! Für eine korrekte Animation müssen Sie zwei Eigenschaften für das/die Stammelement(e) Ihrer Faltzelle einrichten:
android:clipChildren="false"
android:clipToPadding="false"
4. Letzter Schritt! Fügen Sie onClickListener zu Ihrer Faltzelle in MainActivity.java
hinzu, um die Animation umzuschalten:
@ 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. Zusätzlicher Schritt – Anpassen der Zelleneinstellungen. Im Moment gibt es drei Hauptparameter: Animationszeit, Farbe der Rückseite und Anzahl zusätzlicher Flips. Wenn die ersten beiden keine Fragen aufwerfen, bedarf der dritte einer Erklärung. Es handelt sich um die Anzahl der Würfe, die nach dem ersten (Haupt-)Flip ausgeführt werden sollen. Der Standardwert ist 0
(automatische Auswahl). Außerdem gibt es einen vierten, zusätzlichen Parameter – die Kamerahöhe. Er steuert die Tiefe (Tiefe) des 3D-Effekts. Es gibt zwei Möglichkeiten, Zelleneinstellungen zu ändern: Aus einer XML-Layoutdatei mit dem Namensraum 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"
Oder aus dem 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 );
Dieses und weitere, komplexere Beispiele finden Sie in diesem Repository
Folding Cell wird unter der MIT-Lizenz veröffentlicht. Einzelheiten finden Sie unter LIZENZ.
Diese Bibliothek ist Teil einer Auswahl unserer besten UI-Open-Source-Projekte
Wenn Sie die Open-Source-Bibliothek in Ihrem Projekt verwenden, achten Sie bitte darauf, www.ramotion.com zu nennen und einen Backlink darauf zu setzen
Probieren Sie diese und weitere UI-Komponenten in unserer Android-App aus. Kontaktieren Sie uns bei Interesse.