1
votes

La mise en page de contraintes ne peut pas définir la largeur ou la hauteur sur 0

Comment puis-je définir la largeur ou la hauteur réelle sur 0 dans ConstraintLayout par programme via ses LayoutParams depuis le fait que ConstraintLayot.LayoutParams .MATCH_CONSTRAINT = 0 ?

Je souhaite utiliser dans mon code quelque chose comme ceci:

view.getLayoutParams().width = 0;
view.requestLayout();


0 commentaires

3 Réponses :


-1
votes

si vous voulez changer la largeur en MATCH_CONSTRAINT , vous devez définir la mise en page avec une contrainte horizontale

layout_constraintStart_toStartOf ou layout_constraintStart_toEndOf

et

layout_constraintEnd_toEndOf ou layout_constraintEnd_toStartOf


2 commentaires

Où ai-je dit que je voulais le définir comme MATCH_CONSTRAINT? Je veux mettre à 0 ...


Vous devez définir à la fois layout_constraintStart_toStartOf & layout_constraintEnd_toEndOf alors le MATCH_CONSTRAINT peut fonctionner



0
votes

Si par "hauteur" vous entendez la dimension absolue de haut en bas de l'ImageView, vous pouvez faire ce qui suit pour doubler la hauteur d'une ImageView. Vous pouvez définir la hauteur à la valeur souhaitée.

ImageView iv = (ImageView) findViewById(R.id.imageView); 
ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams) 
iv.getLayoutParams(); lp.height = 0 ; iv.setLayoutParams(lp);

Voir ConstraintLayout.LayoutParams.


1 commentaires

Je veux vraiment le faire 0



0
votes

voici un exemple de code à essayer, cela fonctionne pour moi

val params = ConstraintLayout.LayoutParams(
                    ConstraintLayout.LayoutParams.MATCH_CONSTRAINT,
                    ConstraintLayout.LayoutParams.WRAP_CONTENT
                )
                val space16 = binding.root.resources.getDimensionPixelOffset(R.dimen.space_16)
                params.setMargins(space16, 0, 0, 0)

                /*app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@id/imgIcon1"
                app:layout_constraintTop_toTopOf="parent"*/

                params.bottomToBottom = ConstraintLayout.LayoutParams.PARENT_ID
                params.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID
                params.startToEnd = binding.imgIcon1.id
                params.topToTop = ConstraintLayout.LayoutParams.PARENT_ID


                binding.containerBottom.layoutParams = params


0 commentaires