Как отобразить несколько изображений во время выполнения (перенос на следующую строку) - PullRequest
0 голосов
/ 16 июня 2019

У меня довольно странное приложение, в котором я получаю слова / символы во время выполнения и не знаю их заранее.Мне нужно отображать их и переносить по тексту текст, когда он слишком широкий для отображения.

Я немного не уверен, какой макет мне следует использовать для этого функционально, но любые советы будут очень полезны.Было бы хорошо, если бы я мог просто добавить их в представление карты и позволить ей разобраться в упаковке.Есть ли способ сделать это?

Приведенный ниже код должен был отображать «Это предложение динамически составляется во время выполнения».

example output

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <android.support.v7.widget.CardView
        android:id="@+id/card"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:cardCornerRadius="40dp"
        android:layout_centerHorizontal="true"
        android:innerRadius="0dp"
        android:shape="ring"
        android:thicknessRatio="1.9"
        app:contentPadding="13dp"
        >


            <LinearLayout
                android:id="@+id/layout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"

                android:orientation="horizontal">

            </LinearLayout>

    </android.support.v7.widget.CardView>

</android.support.constraint.ConstraintLayout>

MainActivity.java

        LinearLayout ll = (LinearLayout)findViewById(R.id.layout);

        ImageView ivThis = new ImageView(MainActivity.this);
        ivThis.setImageResource(R.drawable.word_this);
        ll.addView(ivThis);

        ImageView ivIs = new ImageView(MainActivity.this);
        ivIs.setImageResource(R.drawable.word_is);
        ll.addView(ivIs);

        ImageView ivA = new ImageView(MainActivity.this);
        ivA.setImageResource(R.drawable.word_a);
        ll.addView(ivA);

        ImageView ivSentance = new ImageView(MainActivity.this);
        ivSentance.setImageResource(R.drawable.word_sentance);
        ll.addView(ivSentance);

        ImageView ivPut = new ImageView(MainActivity.this);
        ivPut.setImageResource(R.drawable.word_put);
        ll.addView(ivPut);

        ImageView ivTogether = new ImageView(MainActivity.this);
        ivTogether.setImageResource(R.drawable.word_together);
        ll.addView(ivTogether);

        ImageView ivDynamically = new ImageView(MainActivity.this);
        ivDynamically.setImageResource(R.drawable.word_dynamically);
        ll.addView(ivDynamically);

        ImageView ivAt = new ImageView(MainActivity.this);
        ivAt.setImageResource(R.drawable.word_at);
        ll.addView(ivAt);

        ImageView ivRuntime = new ImageView(MainActivity.this);
        ivDynamically.setImageResource(R.drawable.word_runtime);
        ll.addView(ivRuntime);

Ответы [ 2 ]

1 голос
/ 16 июня 2019

Надеюсь, это поможет кому-то еще. Ниже показано, как я получил функциональность, которую искал.

Gradle

dependencies {
    implementation 'com.google.android:flexbox:1.1.0'
}

XML

<com.google.android.flexbox.FlexboxLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:flexWrap="wrap"
    app:alignItems="stretch"
    app:alignContent="stretch" >

</com.google.android.flexbox.FlexboxLayout>
1 голос
/ 16 июня 2019

У меня довольно странное приложение, где я получу слова / символы во время выполнения и не буду знать их заранее. Мне нужно отобразить их и перенос слов в текст, когда он слишком широкий для отображения.

Похоже, вы ищете RecyclerView для динамического отображения данных (во время выполнения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...