Convertir XML WebView en @Composable -- android campo con android-jetpack campo con android-jetpack-compose camp Relacionados El problema

Convert XML WebView into @Composable


3
vote

problema

Español

Me gustaría convertir un <div id="addIngredient"> <p> <input type="text" id="ingredient_1" name="ingredient[]" value="" placeholder="Ingredient"/> <input type="text" id="quantity_1" name="quantity[]" value="" placeholder="quantity"/> <a href="#" id="addNewIngredient">Add</a> </p> </div> <br /> 4 en un <div id="addIngredient"> <p> <input type="text" id="ingredient_1" name="ingredient[]" value="" placeholder="Ingredient"/> <input type="text" id="quantity_1" name="quantity[]" value="" placeholder="quantity"/> <a href="#" id="addNewIngredient">Add</a> </p> </div> <br /> 5 . Estoy buscando algo similar a <div id="addIngredient"> <p> <input type="text" id="ingredient_1" name="ingredient[]" value="" placeholder="Ingredient"/> <input type="text" id="quantity_1" name="quantity[]" value="" placeholder="quantity"/> <a href="#" id="addNewIngredient">Add</a> </p> </div> <br /> 6 <div id="addIngredient"> <p> <input type="text" id="ingredient_1" name="ingredient[]" value="" placeholder="Ingredient"/> <input type="text" id="quantity_1" name="quantity[]" value="" placeholder="quantity"/> <a href="#" id="addNewIngredient">Add</a> </p> </div> <br /> 7 .

He visto que había una anotación X-SourceFiles18 pero, 1. Eso hizo lo contrario de lo que quería (convirtió un <div id="addIngredient"> <p> <input type="text" id="ingredient_1" name="ingredient[]" value="" placeholder="Ingredient"/> <input type="text" id="quantity_1" name="quantity[]" value="" placeholder="quantity"/> <a href="#" id="addNewIngredient">Add</a> </p> </div> <br /> 9 en XML) 2. $('#addNewIngredient').on('click', function () { $('<p> <input id="ingredient_' + i + '" size="40" name="ingredient[]' + '" type=text" value="" placeholder="Ingredient" /><input id="quantity_' + i + '" size="40" name="quantity[]' + '" type=text" value="" placeholder="Quantity" /><a href=#" class="remNew2"> Remove </a> </p> ').appendTo(addDiv2); i++; return false; }); 0 Parece que se ha quitado (estoy usando $('#addNewIngredient').on('click', function () { $('<p> <input id="ingredient_' + i + '" size="40" name="ingredient[]' + '" type=text" value="" placeholder="Ingredient" /><input id="quantity_' + i + '" size="40" name="quantity[]' + '" type=text" value="" placeholder="Quantity" /><a href=#" class="remNew2"> Remove </a> </p> ').appendTo(addDiv2); i++; return false; }); 1 ).

Original en ingles

I would like to convert a WebView into a @Composable. I am looking for something similar to SwiftUI's UIRepresentable.

I saw there was a @GenerateView annotation but, 1. that did the opposite of what I wanted(converted a @Composable into xml) 2. @GenerateView seems to have been taken away(I am using Dev05).

        
 
 

Lista de respuestas

1
 
vote

Creo que esa característica aún no es compatible. Pero puede interrumpir las vistas tradicionales con Jetpack componer.

  @Composable fun Browser(list: List<String>) {     Column(modifier = Modifier.fillMaxSize()) { item ->         AndroidView(                 modifier = Modifier.fillParentMaxWidth().height(50.dp),                 viewBlock = { context ->                     WebView(context).apply {                         layoutParams = ViewGroup.LayoutParams(                                 ViewGroup.LayoutParams.MATCH_PARENT,                                 ViewGroup.LayoutParams.MATCH_PARENT,                         )                     }                 })     } }   
 

I think that feature is not supported yet. But you can interop traditional views with jetpack compose.

@Composable fun Browser(list: List<String>) {     Column(modifier = Modifier.fillMaxSize()) { item ->         AndroidView(                 modifier = Modifier.fillParentMaxWidth().height(50.dp),                 viewBlock = { context ->                     WebView(context).apply {                         layoutParams = ViewGroup.LayoutParams(                                 ViewGroup.LayoutParams.MATCH_PARENT,                                 ViewGroup.LayoutParams.MATCH_PARENT,                         )                     }                 })     } } 
 
 
0
 
vote

Creo que deberías estar usando el webcomponent @Compositable. También es un gran ejemplo para ver cómo envuelve una vista existente y la convierte en una composición.

Fuente - https://android.googlesource.com/platform/frameworks/support/and/refs/heads/androidx- acomponte-release/ui/ui -Android-View / SRC / PRINCIPAL / JAVA / ANDROID / UI / ANDROIDVIEW / WEBCOMPONENT.KT

 

I believe you should be using the WebComponent @Composable. It's also a great example to see how it wraps an existing view and converts it into a Composable.

Source - https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-compose-release/ui/ui-android-view/src/main/java/androidx/ui/androidview/WebComponent.kt

 
 
 
 

Relacionados problema

2  ¿Por qué Jetpack compone la vista previa no muestra nada?  ( Why jetpack compose preview shows nothing ) 
Estoy usando Jetpack Rechace y la vista previa muestra solo el título: Pero si uso la versión dev13 funciona bien. IDE: Android Studio 4.2 Canary 7 Co...

0  Kotlin compone, alinee los artículos en fila  ( Kotlin compose align items in row ) 
Estoy usando nueva marca Kotlin Compose para mi punto de vista, tengo una fila con 2 elementos, ¿cómo puedo hacer que center-vertical -como? Row( ...

1  Obtener y establecer la posición del elemento programáticamente en Jetpack componer  ( Get and set position of element programmatically in jetpack compose ) 
¿Es posible obtener y establecer la posición / límites programáticamente del elemento en la ventana? Digamos, tenemos Text1 y queremos moverlo 50dp EN y ...

0  Los eventos táctiles están bloqueados por "espacio vacío" en una columna compone  ( Touch events are blocked by empty space in a composable column ) 
Estoy tratando de usarla Jetpack componer en una aplicación existente. Desde después de la recomendaciones de la integración de componer con una aplicació...

3  Añadiendo gif a jetpack componer  ( Adding gif into jetpack compose ) 
Tengo un GIF que me gustaría poner en mi aplicación. Sé cómo insertar los recursos de la imagen, pero cuando intento agregar el GIF, se convierte en una image...

1  Degradado sobre la imagen en jetpack componer  ( Gradient over image in jetpack compose ) 
Aquí está mi componente: @Composable fun Cover( name: String, imageRes: Int, modifier: Modifier = Modifier.padding(16.dp, 8.dp) ) { Box(mod...

15  Jetpack compone el compilador de la habitación  ( Jetpack compose breaks room compiler ) 
He creado un proyecto de composición de jetpack completamente fresco (de la plantilla del proyecto) con Android Studio 4.0 Canary 6 e intenté agregar dependen...

2  Obtener problemas al intentar configurar Jetpack componer la interfaz encontrada RPLPUMINCONTEXT  ( Getting problems when trying to setup jetpack compose found interface rplugincon ) 
Por lo tanto, estoy tratando de dejar que Jetpack cree que se ejecute con un ejemplo simple, ya he actualizado mi plugin de Kotlin a 1.4.0 y también actualizó...

7  java.lang.illegalstateException: Backend Error interno: excepción durante la generación de código  ( Java lang illegalstateexception backend internal error exception during code g ) 
Estoy intentando que el nuevo jetpack compense, pero cuando cambie a kapt , obtengo este error: 99887776610 . Funciona bien con AnotationProcessor, pero q...

5  ¿Cómo usar las funciones de suspensión de Retrofit con como 4.0 y componen habilitadas?  ( How to use retrofits suspend functions with as 4 0 and compose enabled ) 
Estoy trabajando en un proyecto experimental donde estoy usando Jetpack componer en Android Studio 4.0 y el soporte de Coroutine de la retrofit. Aquí está m...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos