0
votes

Évitez l'élément de mise en page pour déplacer le deuxième élément de la mise en page quand est trop grand

J'ai deux textviews dans la même ligne, à côté de l'autre. Le premier TextView peut être si important qui peut être plus grand que la largeur de l'écran. Donc, lorsque cela se produit, j'ai besoin du second pour être visible et d'avoir le premier avec ellipsize = true et montrer les 3 points. Le second a toujours plus ou moins la même taille toujours, et il devrait être toujours visible.

C'est ce que j'ai maintenant: xxx

J'ai également essayé avec contraintlayout et linearlayout, mais je ne pouvais pas le faire fonctionner comme je le veux.

Modifier

ici 2 images de la façon dont il faut être. Veuillez vous concentrer sur la dernière ligne

1.- Lorsque le premier TextView est petit.

 Entrez la description de l'image ici

La deuxième vue de texte est juste à côté du premier.

2.- Lorsque le premier TextView est grand.

 Entrez la description de l'image ici

la première vue de texte fin. .. mais ne déplacez pas la deuxième vue de texte hors de la mise en page.


2 commentaires

Voulez-vous que TextView visible


Il suffit de définir Android: maxwidth = "100 dP" ou une valeur harcelle à la première TextView pour montrer 3 points à la fin.


4 Réponses :


0
votes

Vous pouvez le faire en utilisant Android: Attribut de layout_weight et par réglage Android: MAXWIDTH Selon le gros texte. XXX

< / p>


2 commentaires

Avec cette approche, je reçois une taille de solution pour la première vue de texte et cela devrait changer en fonction de la taille du texte, mais évitez d'être assez grand pour déplacer le second de la mise en page.


@Ibanarriola Set Android: MAXWIDTH AUX BIG TEXT..LQU'UWWHenever Texte sera plus important que la taille variera jusqu'à la taille maximale, puis 3 points seront apparus ... voir ma réponse modifiée



0
votes

Vous pouvez ajouter une propriété maxwidth forte> et fournir la largeur maximale égale dans les deux TextViews comme celle-ci.

<TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:maxWidth="@dimen/_100sdp"
                android:maxLines="1"
                android:ellipsize="end"
                 />
<TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:maxWidth="@dimen/_100sdp"
                android:maxLines="1"
                android:ellipsize="end"
                 />


0 commentaires

2
votes

J'ai mis à jour la mise en page. Essayez avec cette mise en page

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="1"
    app:layout_constraintTop_toBottomOf="@+id/horizontalItemTitle"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/horizontalItemDescriptionSecond"
    app:layout_constraintStart_toStartOf="parent">
    <TextView
        android:id="@+id/horizontalItemDescription2"
        android:layout_width="0dp"
        android:layout_weight="0.7"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/spacing_x_small"
        android:maxLines="1"
        android:ellipsize="end"
        android:textColor="@color/item_subtitle"
        android:textSize="@dimen/text_size_caption"
        tools:text="10 songs"
        style="@style/AppTheme.Text.Body_2" />
    <TextView
        android:id="@+id/horizontalItemDescriptionSecond2"
        android:layout_width="0dp"
        android:layout_weight="0.3"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/spacing_x_small"
        android:maxLines="1"
        android:textColor="@color/item_subtitle"
        android:textSize="@dimen/text_size_caption"
        android:visibility="gone"
        android:gravity="start"
        android:layout_marginLeft="5dp"
        android:layout_marginStart="5dp"
        tools:text=", 45 min"
        tools:visibility="visible"
        style="@style/AppTheme.Text.Body_2" />
</RelativeLayout>


1 commentaires

Avec cela, la deuxième vue de texte est toujours empilée sur le côté droit de la disposition et il devrait être toujours à côté du premier. Je viens de modifier la question avec des images afin que vous puissiez voir ce dont j'ai besoin.



1
votes

Vous pouvez atteindre ce comportement fonctionnant avec la mise en page de contrainte: xxx


0 commentaires