我的 android listview 不显示最后一项
Posted
技术标签:
【中文标题】我的 android listview 不显示最后一项【英文标题】:My android listview does not show last items 【发布时间】:2019-10-31 03:38:15 【问题描述】:我已经从谷歌测试了我所能做的一切,所以。图片中有更多的错误答案列表应该显示,但没有显示。
我试过了,30dp 或更多的底部填充到列表视图,android:layout_marginBottom="?attr/actionBarSize",app:layout_behavior="@string/appbar_scrolling_view_behavior " ,在滚动视图中添加列表视图 等,但没有什么可以解决这个问题。请提出一些建议!
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_
android:layout_
tools:context="com.it.jumtech.adaptest.activity.ResultDetailActivity">
<TextView
android:id="@+id/textView2"
android:layout_
android:layout_
android:layout_marginLeft="25dp"
android:text="Result Detail"
android:textColor="@android:color/holo_orange_dark"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="16dp"
android:layout_marginStart="25dp" />
<TextView
android:id="@+id/tv_name"
android:layout_
android:layout_
android:layout_marginLeft="25dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="8dp"
android:textSize="16sp"
app:layout_constraintTop_toBottomOf="@+id/textView2"
android:layout_marginStart="25dp" />
<TextView
android:id="@+id/tv_roll"
android:layout_
android:layout_
android:textSize="16sp"
android:layout_marginLeft="25dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/tv_name"
android:layout_marginStart="25dp" />
<TextView
android:id="@+id/label1"
android:layout_
android:layout_
android:layout_marginLeft="25dp"
android:layout_marginStart="25dp"
android:layout_marginTop="8dp"
android:text="Correct Answers"
android:textSize="16sp"
android:textColor="@android:color/holo_blue_light"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_wrongscore" />
<ListView
android:id="@+id/lv_rightlist"
android:layout_
android:layout_
tools:layout_editor_absoluteY="205dp"
tools:layout_editor_absoluteX="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:paddingBottom="10dp"
app:layout_constraintTop_toBottomOf="@+id/label1"/>
<TextView
android:id="@+id/label2"
android:layout_
android:layout_
android:text="Wrong Answers"
android:textSize="16sp"
android:layout_marginLeft="25dp"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
android:textColor="@android:color/holo_blue_light"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/lv_rightlist"
android:layout_marginStart="25dp" />
<ListView
android:id="@+id/lv_wronglist"
android:layout_
android:layout_
tools:layout_editor_absoluteY="205dp"
tools:layout_editor_absoluteX="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:paddingBottom="40dp"
app:layout_constraintTop_toBottomOf="@+id/label2"/>
</android.support.constraint.ConstraintLayout>
列出资源文件
<?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_
android:layout_
tools:context="com.it.jumtech.adaptest.activity.ResultDetailActivity">
<TextView
android:id="@+id/tv_qsn"
android:layout_
android:layout_
android:textSize="18sp"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/label1"
android:layout_
android:layout_
android:text="Answer "
android:textSize="16sp"
android:layout_marginLeft="8dp"
app:layout_constraintTop_toBottomOf="@+id/tv_qsn"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/tv_asnwer"
android:layout_
android:layout_
android:textSize="16sp"
android:textColor="#000000"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toRightOf="@+id/label1"
app:layout_constraintTop_toBottomOf="@+id/tv_qsn"
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/label2"
android:layout_
android:layout_
android:text="Choosen "
android:textSize="16sp"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toRightOf="@+id/tv_asnwer"
app:layout_constraintTop_toBottomOf="@+id/tv_qsn"
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/tv_choosen"
android:layout_
android:layout_
android:textSize="16sp"
android:textColor="#000000"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toRightOf="@+id/label2"
app:layout_constraintTop_toBottomOf="@+id/tv_qsn"
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/label3"
android:layout_
android:layout_
android:text="Mark "
android:textSize="16sp"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toRightOf="@+id/tv_choosen"
app:layout_constraintTop_toBottomOf="@+id/tv_qsn"
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/tv_mark"
android:layout_
android:layout_
android:textSize="16sp"
android:textColor="#000000"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toRightOf="@+id/label3"
app:layout_constraintTop_toBottomOf="@+id/tv_qsn"
android:layout_marginTop="8dp" />
【问题讨论】:
你的意思是说listView不可滚动? @RahulShukla 是的,你可以这么说。 尝试从约束中指定的 id 中删除不必要的“+”,然后重新设计布局。 @RahulShukla 工作一整天,遇到一个问题。 如果可以的话,请将代码示例分享给大家看看。 【参考方案1】:如果您在一个布局中使用两个列表视图,则需要以编程方式计算列表高度并设置为列表。 为此,link 的回答可能会有所帮助
【讨论】:
【参考方案2】:您遵循的方法不正确。要设计这种视图,您应该创建一个嵌套的RecyclerView
。在父 RecyclerView
视图中,您应该创建另一个 recyclerView
。所以父母RecyclerView
的adapter
将有一个孩子recyclerView
。
在 adapter 类中,您可以根据您的要求扩充不同的视图类型。下面是父 Adapter
类的虚拟代码,供您参考。
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view;
switch (viewType)
case TYPE1:
view = inflater.inflate(R.layout.layout_1, parent, false);
return new ViewHolder1(view);
case TYPE_DATA:
view = inflater.inflate(R.layout.layout_2, parent, false);
return new Viewholder2(view);
default:
throw new RuntimeException("No match for found for" + viewType);
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position)
if (holder instanceof Viewholder1)
viewholder1 = (Viewholder1) holder;
if (holder instanceof Viewholder2)
viewholder2 = (Viewholder2) holder;
@Override
public int getItemViewType(int position)
//Based on certain condition, change your return type
if (type1)
return viewType1;
if(type2)
return viewType2;
....
【讨论】:
以上是关于我的 android listview 不显示最后一项的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 中的顶部 ListView 项目上方(以及最后一个项目下方)添加边距
带有集合(ListView)的Android小部件不显示项目
android从listview中删除任何项目删除最后一个元素