У меня есть список предметов. Каждая строка имеет заголовок TextView и LinearLayout, содержащий дочерние представления. Например:
+++++++++++++++++++++++
Название 1
Ребенок_1: цена_1 цена_2 цена_3 цена_4 цена_5
Ребенок_2: цена_1 цена_2 цена_3 цена_4 цена_5
Ребенок_3: цена_1 цена_2 цена_3 цена_4 цена_5
+++++++++++++++++++++++
Название 2
Ребенок_1: цена_1 цена_2 цена_3 цена_4 цена_5
Ребенок_2: цена_1 цена_2 цена_3 цена_4 цена_5
Ребенок_3: цена_1 цена_2 цена_3 цена_4 цена_5
+++++++++++++++++++++++
Проблема, с которой я столкнулся, заключается в том, что LinearLayout показывает не все дочерние представления. Он показывает только child_1 и его цены, но не child_2 и child_3.
+++++++++++++++++++++++
Название 1
Ребенок_1: цена_1 цена_2 цена_3 цена_4 цена_5
+++++++++++++++++++++++
Название 2
Ребенок_1: цена_1 цена_2 цена_3 цена_4 цена_5
+++++++++++++++++++++++
layout_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/title_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/child_linear_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" />
</LinearLayout>
</LinearLayout>
item_child.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:f="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp">
<TextView
android:id="@+id/child_text_view"
android:layout_width="75dp"
android:layout_height="wrap_content" />
<org.apmem.tools.layouts.FlowLayout
android:id="@+id/flowLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dip"
android:gravity="fill"
android:orientation="horizontal"
android:layout_toRightOf="@id/child_text_view"
f:debugDraw="true"
f:layoutDirection="ltr"/>
</RelativeLayout>
</RelativeLayout>
Мой адаптер
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements RecyclerView.OnItemTouchListener {
private MyViewHolder mMyViewHolder;
private MyObj mMyObj;
@Override
RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { }
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) { }
@Override
public int getItemCount() { }
@Override
public int getItemViewType(int position) { }
public class MyViewHolder extends RecyclerView.ViewHolder {
protected TextView mTitleTextView;
protected LinearLayout mLinearLayout;
public MyViewHolder(View itemView) {
super(itemView);
mTitleTextView = (TextView) itemView.findViewById(R.id.title_text_view);
mLinearLayout = (LinearLayout) itemView.findViewById(R.id.child_linear_layout);
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
if (viewHolder instanceof MyViewHolder) {
mMyViewHolder = (MyViewHolder) viewHolder;
mMyObj = (MyObj) mItems.get(i);
mMyViewHolder.mTitleTextView.setText(
mMyObj.getTitle());
mMyViewHolder.mLinearLayout.removeAllViews();
for (Map.Entry<String, ArrayList<MyObj2>> entry : mMyObj.getNewMap().entrySet()) {
mMyViewHolder.mLinearLayout.addView(makeChildView(entry));
}
} else if () { }
}
private View makeChildView(Map.Entry<String, ArrayList<MyObj2>> entry) {
// Inflate child text view and price
}
}