IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

"redraw" un fragment?


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Par défaut "redraw" un fragment?
    Bonjour,

    Voila mon soucis:
    J'ai un fragment dans lequel se trouve une box avec des editText et 2 boutons : Annuler et valider.
    à l'apparition du clavier, je voudrais remonter cette Box pour que les boutons ne soient pas cachés. J'ai trouvé comment détecter le softKeyboard (car ce nest pas fait nativement) > grâce à un custom LinearLayout.

    Le soucis c'est que même si je catch bien l'event, quand je set la gravity du container, ce n'est pas pris en compte :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    @Override
    	public void onSoftKeyboardShown(boolean isShowing) {
     
    		Log.i("SoftKeyboard detected!", "> resizing the dialogbox");
    		if (! isShowing) {
    			mMainLayout.setGravity(Gravity.NO_GRAVITY);
     
    		}else {
    			Log.i("ca passe", "ca passe");
    			mMainLayout.setBackgroundColor(Color.BLUE);
    			mMainLayout.setGravity(Gravity.CENTER);
    }
    }
    Que puis je faire pour que les changements de gravity soient bien pris en compte?
    Redessiner le fragment?
    Comment fais t'on cela?

    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    C'est n'est pas la manière de faire cela.
    Il faut en fait utiliser un layout particulier, afin que tes boutons se situent toujours en bas de l'écran.

    Voici un exemple simplifié : (usage des attributs weight)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
     
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" >
        </LinearLayout>
     
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
     
            <Button />
     
            <Button />
     
        </LinearLayout>
     
    </LinearLayout>

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo