Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

124
Visualizações
Ámbito de componentes componibles a un componente componible principal

Estoy haciendo una implementación de PreferencesScreen en Compose y he hecho todos los componentes como PreferencesSwitch , CheckBox , etc.
Ahora me pregunto si hay alguna manera de hacer que todos los componentes solo se puedan usar dentro del alcance de la función PreferencesScreen y no se puedan usar fuera de ella.
Como por ejemplo, en LazyColumn , los items solo se pueden usar dentro LazyColumnScope . Observé su implementación, pero usó la anotación @LazyScopeMarker , así que supongo que hay diferentes marcadores para diferentes ámbitos.

Comportamiento esperado:

 PreferencesScreen{ PreferencesCheckBox(...){ ... } }

es posible pero,

 PreferencesCheckBox(...){ ... }

solo no es posible.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede declarar algún alcance igual que lo hace LazyColumn :

 interface PreferencesScreenScope { @Composable fun PreferencesCheckBox() } private class PreferencesScreenScopeImpl: PreferencesScreenScope { @Composable override fun PreferencesCheckBox() { } }

interface / class ...Impl se usa aquí para asegurarse de que ninguna otra pantalla pueda reutilizar PreferencesScreenScopeImpl , también agrega la posibilidad de prueba.

Úselo en PreferencesScreen :

 @Composable fun PreferencesScreen(content: @Composable PreferencesScreenScope.() -> Unit ) { PreferencesScreenScopeImpl().content() }

Use PreferencesScreen así:

 PreferencesScreen { PreferencesCheckBox() }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda