#java #android #android_fragment
При добавлении списка типа ExpandedListView в фрагмент цвет текста элементов этого
списка устанавливается белым и, естественно, на белом фоне список почти не видно:
Попробовал добавить этот же список в активити, все отобразилось как надо:
Единственный выход(пока что) - смена цвета бекграунда списка(или лейаута,в котором
находится список). Но все же хотелось бы добиться отображения как на втором скриншоте.
Заранее спасибо!
Код лейаута, в котором находится список:
Код фрагмента:
public class ExercisesFragment extends Fragment{
ExpandableListView elvMain;
ExercisesAdapter EA;
SimpleExpandableListAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState) {
final View rootView = inflater.inflate(R.layout.exercises_fragment, container,
false);
EA = new ExercisesAdapter(getActivity());
adapter = EA.getAdapter();
elvMain = (ExpandableListView) rootView.findViewById(R.id.elvMain);
//elvMain.setBackgroundColor(getResources().getColor(R.color.black));
elvMain.setAdapter(adapter);
return rootView;
}
}
Код ExercisesAdapter:
public class ExercisesAdapter {
final String ATTR_GROUP_NAME= "groupName";
final String ATTR_EXERC_NAME= "exerName";
// названия групп упражнений
String[] groups = new String[] {"Group 1", "Group 2", "Group 3", "Group 4","Group
5", "Group 6", "Group 7", "Group 8", "Group 9"};
// названия упражнений
String[] Group1 = new String[] {"Exercise 1", "Exercise 2", "Exercise 3", "Exercise
4", "Exercise 5"};
String[] Group2 = new String[] {"Exercise 1", "Exercise 2", "Exercise 3", "Exercise
4", "Exercise 5"};
String[] Group3 = new String[] {"Exercise 1", "Exercise 2", "Exercise 3", "Exercise
4", "Exercise 5"};
String[] Group4 = new String[] {"Exercise 1", "Exercise 2", "Exercise 3", "Exercise
4", "Exercise 5"};
String[] Group5 = new String[] {"Exercise 1", "Exercise 2", "Exercise 3", "Exercise
4", "Exercise 5"};
String[] Group6 = new String[] {"Exercise 1", "Exercise 2", "Exercise 3", "Exercise
4", "Exercise 5"};
String[] Group7 = new String[] {"Exercise 1", "Exercise 2", "Exercise 3", "Exercise
4", "Exercise 5"};
String[] Group8 = new String[] {"Exercise 1", "Exercise 2", "Exercise 3", "Exercise
4", "Exercise 5"};
String[] Group9 = new String[] {"Exercise 1", "Exercise 2", "Exercise 3", "Exercise
4", "Exercise 5"};
// коллекция для групп
ArrayList
Ответы
Ответ 1
Задайте стиль для эелементов списка. У вас видимо textColorPrimary задан белым, вот
и элементы списка с белым текстом. Как задать - стоит уже погуглить.
По-другому вы не научитесь решать подобные проблемы
Ответ 2
Цвет текста по всей видимости наследуется от стиля, который у Вас определен в styles.xml
Как вариант решения могу посоветовать указать в адаптере свою разметку
adapter = new SimpleExpandableListAdapter(
ctx,
groupData,
R.layout.my_expandable_list_item_1,
groupFrom,
groupTo,
childData,
R.layout.my_list_item_1,
childFrom,
childTo);
А в ней уже менять все что душе угодно.
Ответ 3
У меня при добавлении ExpandedListView в Активити экстендс эктионБар, тоже цвет шрифта
начинал сливатся с белым фоном, просто сменил разметку как советует ermak0ff
Добавил my_expandable_list_item_1 и my_list_item_1 в папку layout,
Там очень внимательным надо быть, во первых разметка как то не хотела через ctrl-v
ctrl-c вставать, пришлось потихоньку со встреной разметки android.R.layout.simple_expandable_list_item_1
брать вьюшку и строить свои и как то все встало.
Во вторых все ссылки правильно задать android.R.layout менять на R.layout там в коде
эти ссылки не единыжды встречаются.
В общем разметка заработала, цвет шрифта поменял.