Как добавить элемент в новую строку в макете? - PullRequest
0 голосов
/ 06 января 2019

Я новичок в разработке в Android Studio. Я хочу добавить новые поля в строку ниже, если первая строка заполнена. На изображении ниже элементы № 1, № 2, № 3, № 4 заполняют всю ширину, и поэтому, когда я добавляю новый элемент (блок № 5), он идет рядом с блоком № 4. Как я могу автоматически добавить его во второй ряд?

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:orientation="vertical"
        android:layout_margin="2dp"
        android:padding="1dp">

    <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="15dp"
            android:text="#test_hashtag"
            android:padding="5dp"
            android:gravity="center"
            android:background="@drawable/circle_text_bg"
            android:textColor="@android:color/black"
            android:textSize="13dp"/>

</LinearLayout>

circle_text_bg рисует линию границы на прямоугольниках.

Что я попробовал: Я попытался использовать RecyclerView и ListView вместо TextView. Но все они идут горизонтально или только вертикально.

Edit1: элементы являются динамическими. Это несколько хэштегов (это означает, что первая строка может содержать 3 элемента, а вторая может содержать 4 элемента и т. Д.)

1 Ответ

0 голосов
/ 06 января 2019

Рассмотрите возможность использования RecyclerView с GridLayoutManager .

Если вы хотите четыре столбца, вы можете сделать что-то вроде этого:

GridLayoutManager glm = new GridLayoutManager(context, 4);
recyclerView.setLayoutManager(glm);

Или в XML:

<RecyclerView
    ...
    app:spanCount="4"
    app:layoutManager="android.support.v7.widget.GridLayoutManager"
    />

(androidx.recyclerview.widget.GridLayoutManager, если вы используете AndroidX)

...