ListView 仅显示 6 个项目
Posted
技术标签:
【中文标题】ListView 仅显示 6 个项目【英文标题】:ListView only showing 6 items 【发布时间】:2021-11-07 09:27:56 【问题描述】:外国朋友你好!
我正在尝试列出 JSON 调用的返回,但是,在 android ListView 中查看项目时,仅显示 6 个项目(最后一个,减半)。
我检查了API调用,返回了大约20个项目; 验证改造对象,它包含一个包含 20 个对象的数组;在我的观点中,问题出在布局中,由于某种原因没有渲染所有对象。
下面是xml:
<androidx.coordinatorlayout.widget.CoordinatorLayout 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_
android:id="@+id/activity_main"
android:layout_
android:background="#050505">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayoutView"
android:layout_
android:layout_
android:fitsSystemWindows="true">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapseToolBarLayoutView"
android:layout_
android:layout_
android:fitsSystemWindows="true"
app:contentScrim="@android:color/secondary_text_light"
app:expandedTitleMarginBottom="20dp"
app:expandedTitleMarginStart="15dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<ImageView
android:id="@+id/singlePostPathView"
android:layout_
android:layout_
android:adjustViewBounds="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax" />
<View
android:layout_
android:layout_
android:background="@drawable/background_transp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_
android:layout_
android:layout_gravity="bottom"
android:orientation="vertical">
<TextView
android:id="@+id/singleTitleView"
android:layout_
android:layout_
android:layout_marginStart="10dp"
android:textColor="#FFFFFF"
android:text="Top 10 Morgan Freeman Movies"
android:textStyle="bold"
android:textSize="38dp"
android:maxLines="2"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@+id/likeButtonVIew"
app:layout_constraintStart_toStartOf="parent" />
<ImageView
android:id="@+id/userLikesIconView"
android:layout_
android:layout_
android:layout_marginTop="15dp"
android:layout_marginStart="10dp"
android:layout_marginBottom="15dp"
android:src="@drawable/ic_like"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/singleTitleView" />
<ImageView
android:id="@+id/likeButtonVIew"
android:layout_
android:layout_
android:layout_marginEnd="10dp"
android:layout_marginTop="10dp"
android:src="@drawable/ic_like_btn"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/userRateView"
android:layout_
android:layout_
android:text="719 Curtidas"
android:layout_marginStart="5dp"
android:textColor="#FFFFFF"
android:textSize="16sp"
app:layout_constraintStart_toEndOf="@+id/userLikesIconView"
app:layout_constraintTop_toTopOf="@+id/userLikesIconView"
app:layout_constraintBottom_toBottomOf="@+id/userLikesIconView"/>
<ImageView
android:id="@+id/watchesIconVIew"
android:layout_
android:layout_
android:layout_marginStart="20dp"
android:src="@drawable/ic_rd"
app:layout_constraintTop_toTopOf="@+id/userLikesIconView"
app:layout_constraintBottom_toBottomOf="@+id/userLikesIconView"
app:layout_constraintStart_toEndOf="@+id/userRateView"/>
<TextView
android:id="@+id/watchesVIew"
android:layout_
android:layout_
android:layout_below="@+id/singleTitleView"
android:layout_marginStart="5dp"
android:text="0 de 10 Assistidos"
android:textColor="#FFFFFF"
android:textSize="16sp"
app:layout_constraintStart_toEndOf="@+id/watchesIconVIew"
app:layout_constraintBottom_toBottomOf="@+id/userLikesIconView"
app:layout_constraintTop_toTopOf="@+id/userLikesIconView"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:layout_
android:layout_
android:fillViewport="true"
android:layout_below="@+id/appBarLayoutView"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<ListView
android:id="@+id/similar_list"
android:layout_
android:layout_
tools:listitem="@layout/items_similar" />
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
为了实现目标,我需要设置什么属性吗?
【问题讨论】:
这不是一个完全有效的布局。看起来它应该被包裹在一个ConstraintLayout
中,从你的共享布局中被忽略,你能分享整个布局,还有你期望的图片看到
您能否提供您的 MainActivity、列表项和完整的布局,如 @Zain 所写。然后我们可以进一步调查。干杯!
非常抱歉!我没有注意到编辑器取下了显示布局根的顶部。我会解决的。
【参考方案1】:
首先不怪你,但你的layout
绝对应该以更高级的方式设置。在性能和逻辑方面可以做得更多。
检查您的 rootView
是否为 CoordinatorLayout
与 NestedScrollView
组合以在整个屏幕内滚动。
请注意,切勿将 ScrollView
与 ListView
或 RecyclerView
一起使用 - 再次 - 绝不!
我的参考:Android Developer
要查看我需要添加的任何内容,请添加CoordinatorLayout
。我希望你的 rootView 不是AppBarLayout
。
另外一点,让您的ListView
可滚动。如果不是这样解释,为什么ListItems
在 6 个项目后被删除。这也是由Layout
引起的,ListView
还没有机会滚动。顺便说一句,它应该是默认可滚动的。
最后但并非最不重要的一点是,检查您的列表是否有限或看起来像这样:
@Override
public int getCount()
return yourArrayList.length;
【讨论】:
我的代码很奇怪。我现在已经更新了它,它确实应该是(缺少根布局,对不起) 正如我所说:) rootView 不存在。我不得不自己添加它。随意勾选这个作为正确答案。很高兴它有效 :) 干杯!以上是关于ListView 仅显示 6 个项目的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - 如何在 Listview 构建器顶部添加项目?