2016-05-05 4 views
1

i bin der Gestaltung der App haben UI erwartet wie dieseTextumbruch in zwei Linien - recyclerview

Expected

ich bin mit RecyclerView mit

StaggeredGridLayoutManager manager=new StaggeredGridLayoutManager(3,1); 
     recyclerView.setLayoutManager(manager); 

und das ist die Zeile XML-Datei

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="@dimen/padding_8dp" 
    android:layout_marginLeft="@dimen/padding_4dp" 
    android:layout_marginRight="@dimen/padding_4dp" 
    > 

    <com.skcsllp.mutterfly.views.widgets.MfTextView 
     android:id="@+id/tagName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     style="@style/textview" 
     android:layout_gravity="center_horizontal" 
     android:gravity="center" 
     android:textSize="@dimen/text_18" 

     android:background="@drawable/selector_tags" 
     android:textColor="@color/tags_text_color" 

     /> 

</LinearLayout> 

mit so viel ich bekomme die Ausgabe als

What i am getting

ich will nicht Tags in die zweite Linie gehen. Ich bin mir bewusst über die Tatsache, dass ich die Span Anzahl als 3 verwendet habe und so 3 Tags in einer Zeile bekommen, aber gibt es eine Möglichkeit, die Textumhüllung in zwei Zeilen zu vermeiden?

+0

Sie in Ihrem xml android hinzufügen: lines = "1" –

+0

Ich habe versucht aber halber Text geht vom Layout ab wie bei Party-Tier zeigt es nur Party –

+0

versuchen Sie, die Textgröße – Abhishek

Antwort

5

Statt RecyclerView Ich würde vorschlagen, Sie AndroidTagView

Notwendigkeit der Verwendung von Abhängigkeits

dependencies { 
    compile 'co.lujun:androidtagview:1.0.3' 
} 

in Ihrem Haupt-xml hinzuzufügen, statt RecyclerView

<co.lujun.androidtagview.TagContainerLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_margin="0dp" 
android:padding="10dp" 
app:container_enable_drag="false" 
app:horizontal_interval="10dp" 
app:vertical_interval="10dp" 
app:tag_clickable="true" 
app:tag_theme="pure_teal" /> 

und in Ihrer Aktivität/Fragment

TagContainerLayout mTagContainerLayout = (TagContainerLayout) findViewById(R.id.tagcontainerLayout); 
mTagContainerLayout.setTags(List<String> tags); 

werden Sie etwas wie unten ausgegeben, für mehr können Sie diese Bibliothek beziehen, sie haben schönes Beispielprojekt auch gegeben.

enter image description here

andere nützliche Bibliotheken sind im Folgenden aufgelistet:

https://github.com/loopeer/MultiTextTagView
https://github.com/klinker41/android-chips
https://github.com/ApmeM/android-flowlayout
https://github.com/blazsolar/FlowLayout

+0

Danke Kumpel! sein Bündel von Informationen in einer Antwort. aber immer noch nicht dafür, irgendeine Bibliothek für nur eine Bildschirmaufgabe zu verwenden. anyways thankx –

+0

Es ist zu Ihnen, es zu benutzen oder nicht, ich habe gerade den einfachsten Weg gegeben, Ihren Bildschirm zu implementieren. –

+1

hey @Ravi könntest du mir helfen mit [dies] (https://github.com/whilu/AndroidTagView/issues/13) –

0

Ich denke, Sie müssen eine benutzerdefinierte ViewGroup schreiben. Verwenden Sie onMeasure und onLayout der ViewGroup, um die Gesamtbreite des Bildschirms anzuzeigen. Dann messen Sie die Größe von TextView. Wenn die TextView-Breite kleiner als die Bildschirmbreite ist, platzieren Sie die TextView. Weiter zum nächsten TextView mit verbleibender Breite. Wenn die TextView-Breite größer als die verbleibende Bildschirmbreite ist, platzieren Sie die TextView in der nächsten Zeile. Fahren Sie fort, bis Sie alle TextViews platziert haben.

+0

ich denke, ich habe versucht, dass dies geschieht, wenn ich die benutzerdefinierte ViewGroup [Scheck] verwende (http://s32.postimg.org/4tbcuk7yd/Screen_Shot_2016_05_05_at_11_59_20_am.png) –

+0

Es könnte ein Fehler in Ihrem Code sein. Die TextViews müssen auf singleLine/noOfLines = "1" festgelegt werden, damit sie nicht in der zweiten Zeile umbrechen. – Bob

+0

wird nur überprüfen, da ich alles über Code in diesem tat. Es gab keine Xml beteiligt. –