Xamarin. Formas Shell Tabbar se levanta cuando se abre el teclado en Android e iOS

He utilizado tabbar de shell xamarin y crear una pantalla de chat pero cuando el teclado aparece Tabbar también sube.

He intentado todas las formas posibles pero no conseguir éxito por favor ayúdame.

enter image description here

Pregunta hecha hace 3 años, 4 meses, 28 días - Por bugbusterx


3 Respuestas:

  • Intenta establecer Modo de entrada de teclado suave a Resize:

    App.Current.On().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);
    

    Respondida el Dec 18, 2020 a las 10:51 - por codecatalyst

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando, donde el TabBar de Shell también se eleva cuando el teclado aparece en la pantalla de chat, puede ser un comportamiento no deseado pero se puede resolver. Aquí tienes algunas posibles soluciones que podrías probar:

    • Ajustar el modo de ajuste de ventana: Puedes probar a ajustar el modo de ajuste de ventana en tu actividad principal en Android para evitar que el TabBar de Shell se eleve cuando aparece el teclado. Puedes probar algo como esto en tu actividad principal en Android:
    csharp
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
    
        // Ajustar el modo de ajuste de ventana
        Window.SetSoftInputMode(SoftInput.AdjustPan);
    }
    
    • Controlar manualmente la visibilidad del TabBar: En lugar de dejar que el sistema ajuste automáticamente la interfaz de usuario cuando aparece el teclado, puedes intentar controlar manualmente la visibilidad del TabBar de Shell. Puedes ocultar el TabBar cuando el teclado está visible y mostrarlo nuevamente cuando el teclado se oculta. Puedes hacer esto suscribiéndote al evento `KeyboardVisibilityChanged` y ajustar la visibilidad del TabBar en función de si el teclado está visible o no.
    • Utilizar plataformas específicas: En Xamarin.Forms, puedes utilizar clases específicas de cada plataforma (DependencyService) para controlar el comportamiento en Android e iOS por separado si las soluciones anteriores no funcionan. Por ejemplo, puedes ajustar el comportamiento en la actividad principal de Android y en la clase de aplicación en iOS para manejar el comportamiento del TabBar en cada plataforma.

    Es importante recordar que estas soluciones son solo sugerencias y puede que necesites ajustarlas según tus necesidades y la estructura de tu aplicación. Espero que alguna de estas sugerencias te ayude a resolver el problema con el TabBar de Shell en Xamarin.Forms cuando aparece el teclado. ¡Buena suerte!

    Respondida el Dec 19, 2020 a las 10:52 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Solución para Android:

    • Ve al archivo `MainActivity.cs`.
    • Busca el método `OnCreate`.
    • Agrega las siguientes líneas después de `base.OnCreate(savedInstanceState);`:
    c

    Window.SetSoftInputMode(SoftInput.AdjustResize);

    Solución para iOS:

    • Ve al archivo `AppDelegate.cs`.
    • Encuentra el método `FinishedLaunching`.
    • Agrega las siguientes líneas después de `base.FinishedLaunching(application, launchOptions);`:
    c

    UIApplication.SharedApplication.SetKeyboardDismissMode(UIKeyboardDismissMode.Interactive);

    Solución adicional para iOS (si la anterior no funciona):

    • Ve al archivo `Info.plist`.
    • Añade la siguiente clave-valor:
    xml
    UIKeyboardWillHideNotification
    
    

    Nota:

    Asegúrate de que tu aplicación sea compatible con la versión de Android 10 o superior. La solución para Android solo funciona para el modo de ventana completa. La solución para iOS evitará que el teclado se oculte automáticamente al tocar fuera del campo de entrada.

    Explicación:

    Window.SetSoftInputMode (Android) y UIApplication.SharedApplication.SetKeyboardDismissMode (iOS) controlan cómo la ventana o aplicación se adapta al teclado. SoftInput.AdjustResize (Android) y UIKeyboardDismissMode.Interactive (iOS) hacen que la ventana o aplicación cambie su tamaño para acomodar el teclado. La entrada UIKeyboardWillHideNotification (iOS) hace que la aplicación reciba una notificación cuando el teclado está a punto de ocultarse, lo que permite realizar acciones personalizadas (como volver a mostrar la barra de pestañas).

    Respondida el Dec 19, 2020 a las 10:58 - por Gemini

    Votos positivos: 0 | Votos negativos: 0