【发布时间】:2015-07-29 05:40:11
【问题描述】:
如何在 ListView 的 LinearLayout 中添加视图?我想在 ListView 中显示一些附加信息,并且我想将它们添加到一个 for 循环中,遍历要添加的项目。这是我目前拥有的代码:
活动:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:scrollbars="vertical"
android:layout_marginTop="0dp" />
</LinearLayout>
list_recycler:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingRight="?android:attr/scrollbarSize">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginEnd="6dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp">
<TextView android:id="@+id/list_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/textColor"
android:textSize="16sp"
android:layout_alignParentLeft="true"/>
<TextView android:id="@+id/list_title_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/textColor"
android:textSize="16sp"
android:layout_alignParentLeft="true"/>
<!-- VIEWS SHOULD BE ADDED HERE -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</RelativeLayout>
</LinearLayout>
适配器:
public class RVAdapter extends RecyclerView.Adapter<RVAdapter.RecyclerViewHolder> {
public static class RecyclerViewHolder extends RecyclerView.ViewHolder {
TextView personName;
TextView personAge;
RecyclerViewHolder(View itemView) {
super(itemView);
personName = (TextView)itemView.findViewById(R.id.person_name);
personAge = (TextView)itemView.findViewById(R.id.person_age);
}
}
List<Items> list;
public RVAdapter(List<Items> list){
this.list = list;
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_recycler, viewGroup, false);
return new RecyclerViewHolder(v);
}
@Override
public void onBindViewHolder(RecyclerViewHolder recyclerViewHolder, int i) {
recyclerViewHolder.personName.setText(persons.get(i).name);
recyclerViewHolder.personAge.setText(persons.get(i).age);
}
@Override
public int getItemCount() {
return persons.size();
}
}
项目:
public class Items {
String name;
String age;
public Items(String name, String age) {
this.name = name;
this.age = age;
}
}
如何在 ListView 的 LinearLayout 中添加视图?不同ListViewItem中的每一个LinearLayout应该包含不同的view,所以不可能都一样。
我的数据会是什么样子:
ListView
Entry1
LinearLayout
SubEntry1
SubEntry2
SubEntry3
Entry2
LinearLayout
SubEntry1
SubEntry2
SubEntry3
Entry3
LinearLayout
SubEntry1
SubEntry2
SubEntry3
所以Entry1..Entry3是ListViews,所有的子条目都应该是TextViews通过代码添加到对应的ListView entry里面的LinearLayout中
【问题讨论】:
-
我不想向 ListViews 添加项目,我想在 ListView 内的 LinearLayout 内添加 Views(如 TextView)。我知道如何向 ListView 添加项目
-
如果您想在您的 ListView 自定义行中“添加”一个 TextView,为什么不在布局中已经使用属性 android:visibility="gone" 将它放在那里。然后在您希望它在自定义适配器中可见的选定行上将其属性更改为“VIEW.VISIBLE”。
-
因为我不知道会有多少 TextView,因为数据是从网络上解析出来的,而且每天都在变化
-
您知道最大数量还是根本不知道?如果你这样做了,那么只需将最大数量设置为“已消失”并将所需数量设置为每行上的 view.visible 吗?
标签: android android-layout listview view android-linearlayout