2017-09-21 12 views
1

Je suis face à problème étrange avec TextView. Lorsque le texte est trop long, le contenu se déplace vers la gauche et seuls les points sont visibles. Voici mon code de disposition.à long déplacement de texte à gauche dans textview dans Android

<RelativeLayout 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_alignParentEnd="true" 
       android:layout_centerVertical="true"> 

       <ImageView 
        android:id="@+id/coinIcon" 
        android:layout_width="30dp" 
        android:layout_height="30dp" 
        android:paddingRight="2dp" 
        android:paddingBottom="2dp" 
        android:layout_centerHorizontal="true" 
        android:layout_centerVertical="true" 
        app:srcCompat="@drawable/ic_single_coin" 
        tools:ignore="MissingPrefix" /> 

       <TextView 
        android:id="@+id/prizeSize" 
        android:layout_width="13dp" 
        android:layout_height="13dp" 
        android:layout_centerInParent="true" 
        android:layout_alignParentBottom="true" 
        android:layout_alignParentEnd="true" 
        android:background="@drawable/circular_background" 
        android:ellipsize="end" 
        android:focusable="true" 
        android:focusableInTouchMode="true" 
        android:freezesText="true" 
        android:gravity="center" 
        android:marqueeRepeatLimit="marquee_forever" 
        android:maxLines="1" 
        android:padding="1dp" 
        android:scrollHorizontally="true" 
        android:textColor="#fff" 
        android:textSize="6sp" 
        tools:text="100" 
        android:maxEms="20"/> 
      </RelativeLayout> 

Ce texte correspond parfaitement.

enter image description here

Cela supprime le texte:

enter image description here

Comme vous pouvez le voir le texte est approprié actuellement TextView. Mais comme le texte développe des points (..) ne sont visibles. Quelle peut être la meilleure solution pour afficher du texte dans cette petite taille?

+1

pour le cas de test 'android: layout_width = "16DP" android: layout_height = "16DP" android' '.Déposer: ellipsize = "end"' –

+0

le texte doit être affiché à l'intérieur du fond rond gris ?? – Saneesh

+0

@IntelliJAmiya mais cela rendra le design peu laid. Le bas TextView semblera plus grand. Je veux que TextView soit le compteur. – XoXo

Répondre

1

Supprimer android: ellipsize = "end" et Ajouter SingleLine est vrai

<TextView 
    android:id="@+id/prizeSize" 
    android:layout_width="13dp" 
    android:layout_height="13dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:background="@drawable/circular_background" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:freezesText="true" 
    android:gravity="center" 
    android:marqueeRepeatLimit="marquee_forever" 
    android:maxLines="1" 
    android:scrollHorizontally="true" 
    android:textColor="#fff" 
    android:textSize="6sp" 
    tools:text="100" 
    android:singleLine="true" 
    android:maxEms="3"/> 
+0

n'a pas fonctionné. enlever 'android: ellipsize =" end "' travaillé pour moi. – XoXo

+1

'singleLine' est obsolète. 'maxLines' est utilisé. – XoXo

1

Utiliser la bibliothèque BadgeHolderView .. Voici le lien

https://github.com/steelkiwi/BadgeHolderView?utm_source=android-arsenal.com&utm_medium=referral&utm_campaign=6029

Il suffit de remplacer le code par ce

<com.steelkiwi.library.view.BadgeHolderLayout 
     android:id="@+id/view" 
     android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_centerInParent="true" 
     app:bhl_default_badge_background="@color/color3" 
     app:bhl_text_color="@android:color/white" 
     app:bhl_text_size="12sp" 
     app:bhl_badge_radius="10dp" 
     app:bhl_text_font="Pacifico.ttf"> 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      app:srcCompat="@drawable/test_drawable"/> 
    </com.steelkiwi.library.view.BadgeHolderLayout> 
+0

Je pensais ne pas inclure une bibliothèque pour cela. En tout cas, la solution @IntelliJAmiya fonctionne pour moi. – XoXo