2013-06-03 3 views
1

J'ai un LinearLayout. et j'ajoute l'article dans l'exécution. mais tous les éléments sont affichés de TOP à BOTTOM. Maintenant, j'essaie d'afficher les éléments BOTTOM à TOP.Élément d'affichage LinearLayout de bas en haut

Je veux dire. Je veux partir de BOTTOM à TOP pour définir les éléments en disposition linéaire.

Ceci est ma disposition linéaire: -

messagesContainer = (ViewGroup) findViewById(R.id.messagesContainer); 
    scrollContainer = (ScrollView) findViewById(R.id.scrollContainer); 

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 


    if (!leftSide) { 
     bgRes = R.drawable.right_message_bg; 
     params.gravity = Gravity.RIGHT; 
     params.leftMargin=30; 
    } 
    else 
    { 
     params.gravity = Gravity.LEFT; 
     params.rightMargin=30; 
    } 

    textView.setLayoutParams(params); 

    textView.setBackgroundResource(bgRes); 

    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      messagesContainer.addView(textView,messagesContainer.getChildCount()); 

      //messagesContainer.bringChildToFront(textView); 

      // Scroll to bottom 
      if (scrollContainer.getChildAt(0) != null) { 
       scrollContainer.scrollTo(scrollContainer.getScrollX(), scrollContainer.getChildAt(0).getHeight()); 
      } 
      scrollContainer.fullScroll(View.FOCUS_DOWN); 
      scrollContainer.pageScroll(View.FOCUS_DOWN); 
     } 
    }); 

s'il vous plaît aidez-moi.

Répondre

4

Vous pouvez l'ajouter par programme avec:

LinearLayout layout = findViewById(R.id.layout); 
layout.addView(newView, index); 

Il vous suffit d'ajouter toujours avec index = 0

Et vous pouvez également utiliser android:gravity="bottom"

+0

J'ajoute dans "ViewGroup". J'ai mis à jour mon code. – user2160008

+0

Je ne travaille pas. c'est juste l'affichage du message dans viewgroup. mais msg affiche de haut en bas. et je veux l'afficher de bas en haut – user2160008

+0

Je veux donner le texte du bas à l'index = 0 – user2160008

1

Gravity.

Aussi, si vous voulez que le message à afficher de bas en haut, vous devez ajouter les au ViewGroup dans cet ordre.

Régler la gravité à BOTTOM

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT); 
      params.weight = 1.0f; 
      params.gravity=48; 

      button.setLayoutParams(params); 

Pour les valeurs de gravité et comment définir la gravité de la vérification Gravity