Basta baixar o pacote aqui e adicioná-lo ao classpath do seu projeto ou apenas usar o repositório maven:
Gradil:
' 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
ao seu layout < 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. Adicione exatamente dois elementos filhos à sua célula. O primeiro filho ( visualização de conteúdo ) sempre representa o layout do estado desdobrado e o segundo filho ( visualização do título ) representa o layout do estado dobrado. É claro que esses layouts podem conter qualquer número de elementos filhos e podem ter qualquer complexidade, mas para funcionar corretamente, existem algumas limitações: a altura da visualização do conteúdo deve ser pelo menos 2x maior que a altura da visualização do título e a altura de cada um dos esses layouts devem ser definidos como android:layout_height="wrap_content"
. Se você deseja definir a altura exata em dp
, você pode definir a altura dos elementos filhos em seu próprio layout dentro da visualização de conteúdo ou visualização de título . Além disso, você precisa ocultar o layout de visualização do conteúdo 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. Quase pronto! Restam duas etapas! Para uma animação correta, você precisa configurar duas propriedades no(s) elemento(s) raiz da sua Célula Dobrável:
android:clipChildren="false"
android:clipToPadding="false"
4. Etapa final! Adicione onClickListener à sua célula dobrável em MainActivity.java
para alternar a animação:
@ 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. Etapa extra - personalizar as configurações da célula. Por enquanto, existem três parâmetros principais - tempo de animação, cor do verso e contagem adicional de giros. Se os dois primeiros não suscitam dúvidas, o terceiro requer alguma explicação. É a contagem de lançamentos a serem executados após o primeiro lançamento (principal). O valor padrão é 0
(escolha automática). Também há um quarto parâmetro adicional - altura da câmera, que controla o nível (profundidade) do efeito 3D. Existem duas maneiras de alterar as configurações da célula: No arquivo de layout xml com namespace 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 do 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 );
Você pode encontrar este e outros exemplos mais complexos neste repositório
Folding Cell é lançado sob a licença do MIT. Consulte LICENÇA para obter detalhes.
Esta biblioteca faz parte de uma seleção de nossos melhores projetos de UI de código aberto
Se você usar a biblioteca de código aberto em seu projeto, certifique-se de dar crédito e backlink para www.ramotion.com
Experimente este componente de UI e muito mais em nosso aplicativo Android. Contate-nos se estiver interessado.