Je suis nouveau sur Android et j'ai créé un ScrollView et à l'intérieur, ajouté une disposition linéaire verticale qui contient TextViews et sélecteurs. Tous ces éléments ont été créés par programme. Mon problème est sur la ligne setContentView (scroll). Il semble couvrir tous les objets que j'ai créés (pas par programmation) sur le ConstraintLayout à l'arrière. Mais j'ai déjà réglé la hauteur de mon ScrollView dynamique à 800. Comment puis-je afficher les 4 boutons à l'arrière du ScrollView?Android setContentview (scroll) cache les objets ConstraintLayout à l'arrière
Voir les screenshots:
non dynamic objects in constraintlayout
programmatically created objects in linearlayout inside scrollview
Voici le code.
ScrollView scroll = new ScrollView(this);
scroll.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
800));
scroll.setFillViewport(true);
setContentView(scroll); //here is the line with issue
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
LayoutParams lp1 = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
linearLayout.setLayoutParams(lp1);
scroll.addView(linearLayout);
for(int i = 0; i < res2.getCount(); i++)
{
NumberPicker numberPicker = new NumberPicker(this);
numberPicker.setMinValue(0);
numberPicker.setMaxValue(100);
TextView textView = new TextView(this);
textView.setText(/*textArray[i] + " " +*/ res2.getString(1));
linearLayout.addView(textView);
linearLayout.addView(numberPicker);
res2.moveToNext();
}
Nous vous remercions d'avance pour votre aide.
Merci. Dois-je aussi déclarer le ScrollView (parent de LinearLayout) dans le XML au lieu de le créer par programme? –
Merci beaucoup. Ça a marché :). C'est donc la meilleure pratique. Créez des mises en page par xml pour plus de contrôle, puis ajoutez dynamiquement du contenu. –
Oui, vous ne devriez créer les vues par programmation que si vous ne savez pas depuis le début ce que vous aurez besoin de montrer. Veuillez le marquer comme la bonne réponse s'il vous aide! :) –