2016-09-20 9 views
-4

Bitte sehen Sie unten, ich denke, das sollte einfach sein, aber ich kann es nicht herausfinden ...Wie erreicht man dieses Layout in Android?

Das Ziel ist es, ein Bild folgt einige Text sofort, und wenn der Text lang ist, kann das Bild noch da sein und der Text zeigt am Ende Ellipsen. Der Text ist nur eine Zeile.

Danke!

enter image description here

+0

android: single = "true" android: ellipsize = "Ende" android: drawableRight = "@ ziehbar/ic_info" - verwenden Sie diese drei Zeilen in xml –

Antwort

3

Etwas lke dies sollte funktionieren:

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="ABCABCABACBACBACBACBAC" 
     android:maxLines="1" 
     android:singleLine="true" 
     android:ellipsize="end"  
     android:drawableRight ="@drawable/ic_info" /> 
+0

Thank you! Kann ich auf click event von drawableRight hören? Und vielleicht hinzufügen Welleneffekt bei Berührung? – Student222

+0

@ Student222 Wenn Sie Ereignisse auf dem Symbol zuhören müssen, ist vielleicht Ihr Ansatz mit einem DrawableRight nicht die richtige Antwort, ein LinearLayout mit horizontaler Ausrichtung mit einem inneren TextView und imageView sollte gleich aussehen, aber funktioniert wie Sie wollen – Aiapaec

0

dieses versuchen android:ellipsize="end"

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:drawableEnd="@drawable/images" 
     android:ellipsize="end" 
     android:maxLines="1" 
     android:text="Large Text fgkjdsfgkjdfslgk jdsfg jdfgjdfjgijdfogjdfgdfsgdfsg dfsg dfsg sdf g" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:drawableEnd="@drawable/images" 
     android:ellipsize="end" 
     android:maxLines="1" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 
</LinearLayout> 

+0

@ Student222: Hast du die Antwort bekommen? – DKV

+0

Danke! Kann ich auf click event von drawableRight hören? Und vielleicht hinzufügen Welleneffekt bei Berührung? – Student222

+0

Sie können nicht hinzufügen, klicken Sie nur auf DrawableRight. Wenn Sie das brauchen, müssen Sie das Bild separat hinzufügen. Sie erhalten den Klick auf den Text – DKV

0

In obigen Ausführungen haben Sie für Zuhörer gefragt Ereignis auf drawableRight klicken, Hier ist die Implementierung zu diesem

yourTextView.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       final int DRAWABLE_RIGHT = 2; 

       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        if (event.getRawX() >= (yourTextView.getRight() - yourTextView.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) { 

         return true; 
        } 

       } 
       return false; 
       } 

     }); 
Verwandte Themen