Как изменить цвета в многоуровневом recyclerview
У меня есть многоуровневый recyclerview, и я уже установил разные цвета для каждого элемента на первом уровне recyclerview.
Мне нужно, чтобы каждый подпункт в каждом списке имел тот же цвет, что и родительский список, но другой текст.
Как я могу это сделать?
Спасибо.
Что я уже пробовал:
<pre> import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.ListView; import android.widget.TextView; import android.widget.LinearLayout.LayoutParams; public class MainActivity extends Activity { ExpandableListView explvlist; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); explvlist = (ExpandableListView)findViewById(R.id.ParentLevel); explvlist.setAdapter(new ParentLevel()); } public class ParentLevel extends BaseExpandableListAdapter { @Override public Object getChild(int arg0, int arg1) { return arg1; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { CustExpListview SecondLevelexplv = new CustExpListview(MainActivity.this); SecondLevelexplv.setAdapter(new SecondLevelAdapter()); SecondLevelexplv.setGroupIndicator(null); return SecondLevelexplv; } @Override public int getChildrenCount(int groupPosition) { return 5; } @Override public Object getGroup(int groupPosition) { return groupPosition; } @Override public int getGroupCount() { return 7; } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { TextView tv = new TextView(MainActivity.this); switch(groupPosition % 7) { case 0: tv.setText(getResources().getStringArray(R.array.colores)[groupPosition%7]); tv.setBackgroundColor(Color.WHITE); tv.setPadding(10, 7, 7, 7); break; case 1: tv.setText(getResources().getStringArray(R.array.colores)[groupPosition%7]); tv.setBackgroundColor(getResources().getColor(R.color.c2)); tv.setPadding(10, 7, 7, 7); break; case 2: tv.setText(getResources().getStringArray(R.array.colores)[groupPosition%7]); tv.setBackgroundColor(getResources().getColor(R.color.c3)); tv.setPadding(10, 7, 7, 7); break; case 3: tv.setText(getResources().getStringArray(R.array.colores)[groupPosition%7]); tv.setBackgroundColor(getResources().getColor(R.color.c4)); tv.setPadding(10, 7, 7, 7); break; case 4: tv.setText(getResources().getStringArray(R.array.colores)[groupPosition%7]); tv.setBackgroundColor(getResources().getColor(R.color.c5)); tv.setPadding(10, 7, 7, 7); break; case 5: tv.setText(getResources().getStringArray(R.array.colores)[groupPosition%7]); tv.setBackgroundColor(getResources().getColor(R.color.c6)); tv.setPadding(10, 7, 7, 7); break; case 6: tv.setText(getResources().getStringArray(R.array.colores)[groupPosition%7]); tv.setBackgroundColor(getResources().getColor(R.color.c7)); tv.setPadding(10, 7, 7, 7); break; } /*TextView tv = new TextView(MainActivity.this); tv.setText("->FirstLevel"); tv.setBackgroundColor(Color.WHITE); tv.setPadding(10, 7, 7, 7);*/ tv.setTextSize(20); return tv; } @Override public boolean hasStableIds() { return true; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } } public class CustExpListview extends ExpandableListView { int intGroupPosition, intChildPosition, intGroupid; public CustExpListview(Context context) { super(context); } protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { widthMeasureSpec = MeasureSpec.makeMeasureSpec(960, MeasureSpec.AT_MOST); heightMeasureSpec = MeasureSpec.makeMeasureSpec(600, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } public class SecondLevelAdapter extends BaseExpandableListAdapter { @Override public Object getChild(int groupPosition, int childPosition) { return childPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView tv = new TextView(MainActivity.this); tv.setText("child"); tv.setPadding(15, 5, 5, 5); tv.setBackgroundColor(Color.YELLOW); tv.setLayoutParams(new ListView.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); return tv; } @Override public int getChildrenCount(int groupPosition) { return 1; } @Override public Object getGroup(int groupPosition) { return groupPosition; } @Override public int getGroupCount() { return 1; } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { //Second Level TextView tv = new TextView(MainActivity.this); tv.setText("-->Second Level"); tv.setPadding(12, 7, 7, 7); tv.setBackgroundColor(Color.RED); return tv; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return true; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return true; } } }