2012-01-20 5 views
1

Bonjour collègues développeurs Android,Android autoCompleteTextView change avec screenize?

J'ai un problème concernant l'autocompletetextview. Je développe sur une tablette, et je l'ai personnalisé gentiment. Quand je l'exécute sur une tablette, il ressemble à ceci: Tablet view

C'est en fait ce que je veux - tout ce qui est visible, les petits objets, le bleu au lieu de l'orange. Cool. Et c'est ce qui se passe quand je lance la même application exacte sur un appareil plus petit, par exemple un Nexus-S:

Nexus view

Les vues originales disparaissent, ont des choses orange, et je ne vois qu'un seul élément suggéré à un moment ou deux au mieux. Ce n'est pas ce que j'avais prévu.

Si je cours cette application pas dans le paysage, mais dans le portrait, tout fonctionne bien. Insensé. Est-ce que quelqu'un sait ce que je peux faire pour garder la mise en page personnalisée sur le petit écran?

+0

Donc, dans Nexus S lui-même, cela fonctionne bien en mode portrait est-il? Et bousille dans le mode paysage hein? – Ghost

+0

Exactement c'est le cas! –

+0

Dans ce cas, créez des mises en page distinctes pour le format paysage et placez-les dans le dossier layout-land situé dans le dossier res. – Ghost

Répondre

1

La deuxième image que vous avez affichée ici est le résultat de l'affichage automatique du texte ou de l'édition de texte lorsque l'appareil est en mode paysage. Si l'appareil est en mode portrait, il affichera les suggestions dans la liste verticale, et pour le mode paysage, il s'affichera dans la liste horizontale et il essayera de remplir tout l'écran avec du texte d'édition et un clavier logiciel.

J'ai aussi rencontré le même problème, s'il vous plaît consulter le site Web Android Developers pour plus d'informations sur le soutien de plusieurs écrans, il peut vous aider.

Nouvelle réponse

Pour masquer le clavier souple lorsque vous appuyez sur le bouton Terminé, vous devez utiliser imeOptions pour AutoCompleteTextView. Faites ces changements à votre code et essayez-le.

les modifications du fichier XML de mise en page comme ci-dessous

<AutoCompleteTextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:imeOptions="actionDone" 
    android:id="@+id/actv" /> 

dans le fichier java

 actv = (AutoCompleteTextView)findViewById(R.id.actv); 
     actv.setOnEditorActionListener(new OnEditorActionListener() { 
      @Override 
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
       if (actionId == EditorInfo.IME_ACTION_DONE) { 
        InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
        imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
        return true;  
       } 
       return false; 
      }   
     }); 

je l'espère, il peut vous aider.

+0

Merci pour votre réponse. J'ai déjà lu et utilisé cette ressource. Malheureusement, j'ai besoin de ce mode paysage, ne peut pas changer à la verticale, c'est une spécification-req. Alors ... Peu importe la taille de cette popup, chaque fois que je clique dans l'autoCompleteTextView, l'écran change radicalement, de plus, le bouton Bloody Done ne fait rien par défaut! :) Comment avez-vous réussi à le résoudre dans le fin? –

+0

@IstvanLatos signifie même que vous appuyez sur le bouton Terminé, le clavier ne disparaît pas? –

Questions connexes