Подтвердить что ты не робот

Android - ListView показывает только первый результат

Я работаю над Android-приложением, которое взаимодействует с Twitter с помощью своего API поиска. Все работает хорошо, за исключением того, что когда я хочу показать результат с помощью ListView, отображается только первый результат.

ArrayList<TwitterJSONResults> arrayList = new ArrayList<TwitterJSONResults>(data.getResults().size());
for (int i = 0; i < data.getResults().size(); i++) {
    arrayList.add(data.getResults().get(i));
}

ArrayAdapter<TwitterJSONResults> resultAdapter = new ArrayAdapter<TwitterJSONResults>(
                this, android.R.layout.simple_list_item_1, arrayList);
listview.setAdapter(resultAdapter);
resultAdapter.notifyDataSetChanged();

Фрагмент кода выше показывает, как я добавляю результаты в адаптер и устанавливаю этот адаптер в список, что я делаю неправильно?

4b9b3361

Ответ 1

Не помещайте ListView внутри ScrollView:)

Ответ 3

Благодаря @207 я понял, что проблема в моем случае состояла в том, что я использовал NestedScrollView, поэтому для меня было использовано решение

android:fillViewport="true"

Здесь мой код:

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    </android.support.v4.widget.NestedScrollView>

Ответ 4

Оказывается, у меня все в моем java-коде отлично работает. проблема заключалась в использовании списка внутри списка прокрутки, который, как правило, является плохим. Это привело к игнорированию listview

android:layout="wrap_content"

поэтому контент был там, он просто не показывался. После удаления scrollview из моего XML файла все работает с файлом.

Большое спасибо 207 за поддержку:)

Ответ 5

У меня была такая ошибка, как у вас, когда вы указываете listview внутри ScrollView. И мое решение следующее:

1. Создайте пользовательский список, который не прокручивается

public class NonScrollListView extends ListView {

public NonScrollListView(Context context) {
    super(context);
}
public NonScrollListView(Context context, AttributeSet attrs) {
    super(context, attrs);
}
public NonScrollListView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(
                Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom);
        ViewGroup.LayoutParams params = getLayoutParams();
        params.height = getMeasuredHeight();    
}

}

2. Использовать над пользовательским классом для xml файла

  <xx.xx.NonScrollListView
        android:id="@+id/lv_nonscroll_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </xx.xx.NonScrollListView>

Он отлично работал на всех ОС-версиях для меня. Надеюсь, что лучше для вас.

Ответ 6

Вы можете использовать ListView внутри NestedScrollView. Единственное, что вы должны помнить, это добавить android:nestedScrollingEnabled="true" в макет xml, чтобы включить прокрутку дочерних элементов NestedScrollView.

Ответ 7

Поместите это в макет ListView xml

    android:stackFromBottom="true"
    android:transcriptMode="alwaysScroll"

Ответ 8

это мой ответ

<android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <ListView
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:id="@+id/listViewRefeCalendarDay" />

    </android.support.v4.widget.NestedScrollView>