0
votes

Comment puis-je ajouter des vues de manière dynamique dans une mise en page relative ou dans une mise en page

Eh bien, mon problème est un peu compliqué (pour moi). Supposons que j'ai un relativelayoutout (ou toute autre mise en page au besoin).

maintenant je fais quelque chose afficher comme textview . (Plusieurs affichage ). Ces Voir incluront les caractéristiques suivantes que je donnerai du code Java.

  1. Je veux ajouter le afficher à la mise en page dans une position spécifique.
  2. Deux ou plus Voir peuvent être chevauchés (comme la photo suivante)
  3. Il est un peu Ajouterview (enfant, positionneur, largeur, hauteur); Je sais qu'il n'y a pas de méthode comme celle-ci. Mais j'en ai besoin d'un.

    Où positionx sera un entier définissant l'emplacement où la vue sera définie dans la mise en page du haut.

    maintenant, je veux ajouter ces Voir à la mise en page comme la photo suivante.

     Entrez la description de l'image ici

    (tous Voir de taille rectangulaire; désolé pour la mauvaise édition.)

    Comment puis-je faire cela? J'ai gravement besoin de la solution.

    J'espère que j'ai expliqué mon problème avec mon anglais pauvre :(

    Merci d'avance <3 <3


0 commentaires

4 Réponses :


2
votes

Comme vous l'avez mentionné,

Toutes la vue sera de taille rectangulaire

prenons donc un bouton Yourbutton par exemple. Vous devez passer deux valeurs, une du haut et un de gauche à gauche où vous voulez mettre la vue. Ensuite, utilisez la méthode suivante, comme vous l'avez voulu addview () pour obtenir la sortie souhaitée dans un relativelayoutout : xxx

Vous pouvez personnaliser la mise en page à l'aide de la largeur et de la hauteur de la même manière programmatique, si nécessaire. Veuillez vous reporter à cette Répondre pour obtenir le code de la manière de redimensionner une vue personnalisée par programme. J'espère que cela aide!


0 commentaires

1
votes

Essayez ceci:

//-----Main Layout-----\\
LinearLayout l1 = findViewById(R.id.myLinear);
ll.setOrientation(LinearLayout.VERTICAL);

//-----First layout-----\\
LinearLayout l11 = new LinearLayout(this);
l11.setBackgroundColor(android.R.color.holo_orange_dark);
l1.addView(l11, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));

//-----Second layout-----\\
LinearLayout l12 = new LinearLayout(this);
l12.setBackgroundColor(android.R.color.holo_green_dark);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(-30, 20, 20, 0); //Negative margin top to superposition views
l1.addView(l12, layoutParams);


0 commentaires

0
votes

Si vous souhaitez ajouter plusieurs vues de manière dynamique, essayez de les refroidir dans une vue de compund (il sera plus facile de les positionner)

https://www.vogella.com/taturials/androidCustomviews/article.html

Quel type de groupe de visit utilisez-vous? Si sa configuration de contrainte vous pouvez définir des contraintes de manière programmative à l'aide de contraintlayout.layoutparams de la même manière que Saadaakash mentionné


0 commentaires

2
votes

Vous pouvez également utiliser FLEXBOX Mise en page fournie par Google pour ajouter une vue de manière dynamique. Vous pouvez vérifier cette Medium poste pour un concept clair sur Layout Flexbox


0 commentaires