Android: заполнить ScrollView с помощью foreach - PullRequest
0 голосов
/ 04 октября 2018

Моя проблема довольно проста: у меня есть список из 5 объектов, и я хочу показать их в виде прокрутки.Я делаю это, как здесь:

    private void PopulateScrollView(List<string> content)
    {
        LinearLayout root = (LinearLayout)FindViewById(Resource.Id.scrollview);

        foreach(string obj in content)
        {
            LinearLayout ln = new LinearLayout(this);
            TextView txt = new TextView(this);
            txt.Text = obj;
            txt.TextSize = 20;
            txt.Click += delegate
            {
                Android.Net.Uri uri2 = Android.Net.Uri.Parse(obj);
                mediaPlayer = MediaPlayer.Create(this, uri2);
                mediaPlayer.Start();
            };

            ln.AddView(txt);
            root.AddView(ln);

        }
    }

И мой XML:

<LinearLayout
    android:orientation="horizontal"
    android:gravity="center"
    android:layout_width="match_parent"
    android:layout_weight="80"
    android:layout_height="0dp">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:orientation="horizontal"
            android:id="@+id/scrollview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </ScrollView>
</LinearLayout>

Теперь проблема заключается в следующем: вместо отображения 5 объектов в моем scrollview мое приложениепросто показывает первый объект, а затем игнорирует остальные.Я знаю, что мой список работает от отладчика: он содержит все объекты.Цикл выполняется 5 раз, поэтому он также работает нормально.Но только первый объект виден в окне прокрутки.Где моя ошибка?

Спасибо!

1 Ответ

0 голосов
/ 04 октября 2018

Ваш LinearLayout ln создается по умолчанию с помощью match_parent / match_parent, поэтому только 1 строка занимает весь экран.Если вы прокрутите его, вы можете найти остальные.Решение состоит в том, чтобы указать высоту wrap_content для LinearLayout ln.

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