2016-03-07 1 views
0

Je travaille sur un projet dans Android Studio, où j'ai un certain nombre de fragments d'onglets contenant des vues de détail principales qui présentent une liste dans le maître et une seule grille dans le détail, et celles-ci sont simplement posées dans les mises en page xml et fonctionne parfaitement. Pour la vue de détail de l'onglet final, je dois être capable de présenter plusieurs maillages séparés de lignes horizontales et de colonnes dynamiques à défilement horizontal séparé, ou grille, avec un en-tête TextView pour chacun, et cela doit être fait par programmation car ils sont susceptibles de différer selon la sélection de la liste de vues principale. C'est si facile sur iOS en utilisant des vues de collection, mais il n'y a pas d'exemples que je peux trouver pour Android qui font la même chose, et chaque chose que j'ai essayé aboutit à une seule grille, sans en-tête TextView. Quelqu'un peut-il fournir un exemple simple (avec peut-être trois grilles) de la façon dont cela pourrait être fait? Merci :)Android Studio GridLayouts multiples par programme

+0

Votre description me prêterait à confusion. Pouvez-vous ajouter une capture d'écran de ce que vous voulez et/ou du code que vous avez jusqu'à maintenant? – Soana

+0

si vous voulez de l'aide, vous devriez écrire l'exemple générique à l'avance ... – Soana

+0

Merci beaucoup d'avoir répondu @Soana, je me suis débrouillé tout seul, et voici la réponse assez simple. J'espère simplement que cela aidera les autres afin qu'ils n'aient pas les mêmes problèmes que ceux que j'ai rencontrés pour obtenir de l'aide ici. :) – partynose

Répondre

0
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ScrollView svv = new ScrollView(this); 
    svv.setLayoutParams(new ScrollView.LayoutParams(ScrollView.LayoutParams.WRAP_CONTENT, ScrollView.LayoutParams.WRAP_CONTENT)); 
    LinearLayout linLayout = new LinearLayout(this); 
    linLayout.setOrientation(LinearLayout.VERTICAL); 
    LayoutParams linLayoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
    LayoutParams lpView = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    int colcount = 20; 
    int rowcount = 1; 
    TextView tv; 
    Button btn; 
    GridLayout grd; 
    GridLayout.LayoutParams gllop; 
    HorizontalScrollView svh; 

    for(int i = 0; i < 30; i++) { 
    tv= new TextView(this); 
    tv.setText("TextView " + i); 
    tv.setLayoutParams(lpView); 
    linLayout.addView(tv); 
    grd = new GridLayout(this); 
    grd.setColumnCount(colcount); 
    grd.setRowCount(rowcount); 
    grd.setBackgroundColor(Color.YELLOW); 
     for(int j = 0; j < 20; j++) { 
      gllop = new GridLayout.LayoutParams(GridLayout.spec(0), GridLayout.spec(j)); 
      btn = new Button(this); 
      btn.setText("Button " + i +"."+j); 
      grd.addView(btn, gllop); 
     } 
     svh = new HorizontalScrollView(this); 
     svh.addView(grd); 
     linLayout.addView(svh); 
    } 
    svv.addView(linLayout); 
    setContentView(svv, linLayoutParam); 

}