Simplemente descargue el paquete desde aquí y agréguelo a la ruta de clase de su proyecto, o simplemente use el repositorio de Maven:
Gradle:
' com.ramotion.foldingcell:folding-cell:1.2.3 '
SBT:
libraryDependencies += " com.ramotion.foldingcell " % " folding-cell " % " 1.2.3 "
experto:
< dependency >
< groupId >com.ramotion.foldingcell</ groupId >
< artifactId >folding-cell</ artifactId >
< version >1.2.3</ version >
</ dependency >
com.ramotion.foldingcell.FoldingCell
a su diseño < 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. Añade exactamente dos elementos secundarios a tu celda. El primer elemento secundario ( vista de contenido ) siempre representa el diseño en estado desplegado y el segundo elemento secundario ( vista de título ) representa el diseño en estado plegado. Por supuesto, esos diseños pueden contener cualquier cantidad de elementos secundarios y pueden ser de cualquier complejidad, pero para funcionar correctamente, existen algunas limitaciones: la altura de la vista del contenido debe ser al menos 2 veces mayor que la altura de la vista del título , y la altura de cada uno de esos diseños deben configurarse en android:layout_height="wrap_content"
. Si desea establecer la altura exacta en dp
, puede establecer la altura de los elementos secundarios en su propio diseño dentro de la vista de contenido o de título . Además, debe ocultar el diseño de la vista de contenido usando 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. ¡Casi terminado! ¡Quedan dos pasos! Para una animación correcta, necesita configurar dos propiedades en los elementos raíz de su celda plegable:
android:clipChildren="false"
android:clipToPadding="false"
4. ¡Último paso! Agregue onClickListener a su celda plegable en MainActivity.java
para alternar la animación:
@ 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. Paso adicional: personalizar la configuración de la celda. Por ahora, hay tres parámetros principales: tiempo de animación, color del reverso y recuento de giros adicionales. Si los dos primeros no plantean dudas, el tercero requiere alguna explicación. Es el recuento de lanzamientos que se ejecutarán después del primer lanzamiento (principal). El valor predeterminado es 0
(elección automática). También hay un cuarto parámetro adicional: la altura de la cámara, que controla el nivel (profundidad) del efecto 3D. Hay dos formas de cambiar la configuración de la celda: Desde un archivo de diseño xml con espacio de nombres 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"
O desde el código:
// 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 );
Puedes encontrar este y otros ejemplos más complejos en este repositorio
Folding Cell se lanza bajo la licencia MIT. Consulte LICENCIA para obtener más detalles.
Esta biblioteca es parte de una selección de nuestros mejores proyectos de interfaz de usuario de código abierto.
Si utiliza la biblioteca de código abierto en su proyecto, asegúrese de acreditar y vincular a www.ramotion.com
Pruebe este componente de interfaz de usuario y más como este en nuestra aplicación de Android. Contáctenos si está interesado.