ExpandableListContainer
ExpandableListContainer — расширяемый список.
Использование В XML используется ExpandableListContainer:
<ExpandableListContainer
ohos:id="$+id:exlist_lol"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:long_click_enabled="false"
/>
Пользовательский Provider:
public class MyBaseExpandableItemProvider extends BaseExpandableItemProvider {
private String[] gData;
private String[][] iData;
private Context mContext;
private String[] colorsArr = new String[]{
"#5470c6",
"#91cc75",
"#fac858",
"#ee6666",
"#73c0de",
"#3ba272",
"#fc8452",
"#9a60b4",
"#ea7ccc",
"#5470c6",
"#91cc75",
"#fac858",
"#ee6666",
"#73c0de",
"#3ba272",
"#fc8452",
"#9a60b4",
"#ea7ccc"
};
public MyBaseExpandableItemProvider(String[] gData, String[][] iData, Context mContext) {
this.gData = gData != null ? gData.clone() : null;
this.iData = iData != null ? iData.clone() : null;
this.mContext = mContext;
}
@Override
public int getGroupCount() {
return gData.length;
}
@Override
public int getChildrenCount(int groupPosition) {
return iData[groupPosition].length;
}
@Override
public String getGroupItem(int groupPosition) {
return gData[groupPosition];
}
@Override
public String getChildItem(int groupPosition, int childPosition) {
return iData[groupPosition][childPosition];
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return false;
}
//取得用于显示给定分组的视图. 这个方法仅返回分组的视图对象
@Override
public Component getGroupComponent(int groupPosition, boolean isExpanded, Component convertView, ComponentContainer parent) {
ViewHolderGroup groupHolder;
if (convertView == null || !(convertView.getTag() instanceof ViewHolderGroup)) {
convertView = LayoutScatter.getInstance(mContext).parse(
ResourceTable.Layout_item_exlist_group, parent, false);
groupHolder = new ViewHolderGroup();
groupHolder.tv_group_name = (Text) convertView.findComponentById(ResourceTable.Id_tv_group_name);
groupHolder.image_arrow = (Image) convertView.findComponentById(ResourceTable.Id_image_arrow);
convertView.setTag(groupHolder);
} else {
groupHolder = (ViewHolderGroup) convertView.getTag();
}
groupHolder.tv_group_name.setText(gData[groupPosition]);
if (isExpanded) {
groupHolder.image_arrow.setRotation(180);
} else {
groupHolder.image_arrow.setRotation(0);
}
return convertView;
}
//取得显示给定分组给定子位置的数据用的视图
@Override
public Component getChildComponent(int groupPosition, int childPosition, boolean isLastChild, Component convertView, ComponentContainer parent) {
ViewHolderItem itemHolder;
if (convertView == null || !(convertView.getTag() instanceof ViewHolderItem)) {
convertView = LayoutScatter.getInstance(mContext).parse(
ResourceTable.Layout_item_exlist_item, parent, false);
itemHolder = new ViewHolderItem();
itemHolder.tv_color_dot = (Text) convertView.findComponentById(ResourceTable.Id_tv_color_dot);
itemHolder.tv_name = (Text) convertView.findComponentById(ResourceTable.Id_tv_name);
convertView.setTag(itemHolder);
} else {
itemHolder = (ViewHolderItem) convertView.getTag();
}
String colorStr = colorsArr[groupPosition];
int intColor = Color.getIntColor(colorStr);
``` **Текст запроса:**
Color color = new Color(intColor);
itemHolder.tv_color_dot.setTextColor(color);
itemHolder.tv_name.setText(iData[groupPosition][childPosition]);
return convertView;
}
//设置子列表是否可选中
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
private static class ViewHolderGroup {
private Text tv_group_name;
private Image image_arrow;
}
private static class ViewholderItem {
private Text tv_color_dot;
private Text tv_name;
}
Перевод текста запроса на русский язык:
Цвет color = новый Цвет (intColor);
itemHolder.tv_color_dot.setTextColor (color);
itemHolder.tv_name.setText (iData [groupPosition] [childPosition]);
вернуть convertView;
}
//Установка дочернего списка, можно ли его выбрать
@Override
общедоступный логический isChildSelectable (int groupPosition, int childPosition) {
вернуть истину;
}
частный статический класс ViewHolderGroup {
частный текст tv_group_name;
частное изображение image_arrow;
}
частный статический класс viewholderItem {
частный текст tv_color_dot;
частный текст tv_name;
}
*В запросе представлен фрагмент кода на языке Java, который описывает методы и классы для работы с элементами пользовательского интерфейса.* **Типы диаграмм:**
* Столбчатая диаграмма;
* Диаграмма водопада;
* Пирамидальная диаграмма;
* Воронкообразная диаграмма;
* Диаграмма ошибок.
**Смешанные диаграммы:**
* Смешанная диаграмма с диапазоном областей;
* Смешанная линейчатая диаграмма с диапазонами;
* Смешанная столбчатая линейчатая диаграмма со стеком;
* Тип штриха смешанной диаграммы;
* Цвет отрицательных значений смешанной диаграммы;
* Смешанный линейный график разброса;
* Отрицательный цвет пузырьковой диаграммы смешанных значений;
* Многоугольник смешанного графика разброса;
* Полярная смешанная диаграмма.
**Пользовательские стили диаграмм:**
* Красочный график;
* Градиентный красочный график;
* График с прерывистыми данными;
* Красочный столбиковый график;
* График «Роза Норманна»;
* Стиль диаграммы с тенью;
* Красочный градиентный график площадей;
* Красочный градиентный сплайн-график;
* Сплайн-график с областями и градиентом;
* Специальный стиль маркера для одного элемента данных на графике;
* Специальный столбиковый стиль для одного элемента данных на графике;
* Пороговое значение графика площадей;
* Пользовательский символ содержания маркера на точечном графике;
* Символ пользовательского содержания маркера линейного графика;
* Треугольный радарный график;
* Четырёхугольный радарный график;
* Пятиугольный радарный график;
* Шестиугольный радарный график.
**Настройка осей X и Y:**
* Настройка максимального и минимального значения осей X и Y.
**Специальные стили:**
* Специальная настройка DataLabel для одного элемента данных;
* Специальные цвета при наведении курсора и выборе цвета на гистограмме;
* Специальные состояния при наведении курсора и выбор стиля ореола на линейном графике;
* Специальные состояния маркеров при наведении курсора на сплайн-графике;
* Содержание и стиль DataLabels на столбчатой диаграмме со стопкой;
* Перевёрнутая пирамидальная диаграмма;
* Двойной слой круговой диаграммы;
* Отключение эффекта отслеживания мыши или пальца для некоторых линий;
* Конфигурация красочного графика с эффектом тени;
* Конфигурация графика ступенчатой линии с красочными DataLabels;
* Конфигурация графика ступенчатой области с красочным градиентом и красочными DataLabels.
**Отключение эффектов:**
* Отключить эффект увеличения ореола маркера при наведении курсора для сплайн-графика.
**Использование AAOptions для построения графиков:**
* Настроить стиль легенды;
* Создать график с использованием Options;
* Добавить линии графика с помощью AAPlotLinesForChart;
* Настроить всплывающую подсказку с помощью пользовательской функции JS;
* Изменить стиль перекрестия оси X;
* Установить цвет шрифта меток оси X с помощью строки HTML;
* Установить цвет и размер шрифта меток оси X с помощью строки HTML;
* Стили DataLabels, осей X, Y и легенды;
* Оси X с полосами графика;
* Настроить зеркальную столбчатую диаграмму;
* Настроить диаграмму с двумя осями Y;
* Настроить смешанную диаграмму с тремя осями Y;
* Формат DataLabels линейного графика;
* Настроить смешанный график с двумя осями Y и столбчатым линейным графиком;
* Настроить график глубины рынка с двумя осями Y;
* Настроить стиль всплывающей подсказки для графика областей в виде таблицы HTML;
* Простой график индикатора.
**Обновление данных в реальном времени:**
* Столбиковая диаграмма;
* Гистограмма;
* Площадь графика;
* Область сплайна графика;
* Ступенчатый график площади;
* Линейный график. Данный фрагмент текста написан на языке Java.
**Чарт---Сплошная диаграмма**,
**Сплайн Чарт---Кривая диаграмма**,
**Скаттер Чарт---Диаграмма рассеяния**},
/*Пользовательский форматтер функция*/
{
**"Простое объединение строк",**
**"Пользовательские суффиксы различных единиц измерения",**
**"Многоцветные текстовые символы",**
**"Значение равно нулю, в tooltip не отображается",**
**"Заголовок плавающей подсказки для пользовательской коробчатой диаграммы",**
**"Пользовательское Y-осевое текстовое содержимое",**
**"Пользовательское Y-осевое текстовое содержимое 2",**
**"Содержимое всплывающей подсказки пользовательского сгруппированного столбчатого графика",**
**"Диаграмма с двойной осью X",**
**"customArearangeChartTooltip---пользовательская подсказка для диаграммы диапазона линий",**
**"Регулировка отступа левой стороны оси X для диаграммы линий",**
**"Использование внешних источников данных для настройки tooltip (нестандартные данные из рядов диаграмм)"**,}
/*Выполнение функции JavaScript, преобразованной из строки в функцию JavaScript*/
{
**"eval JS function 1",**
**"eval JS function 2",**
**"eval JS function 3",**},
/*Двойные диаграммы Linked Work---Двойная работа с диаграммами*/
{
**"doubleChartsLinkedWork",**},
/*Scrollable Chart---Прокручиваемая диаграмма*/
{
**"Столбчатая диаграмма---Столбчатая диаграмма",**
**"Гистограмма---Гистограмма",**
**"Диаграмма площади---Линейчатая диаграмма с заливкой",**
**"Диаграмма области сплайна---Кривая диаграмма с заливкой",**
**"Ступенчатая диаграмма площади---Прямоугольная ступенчатая линейчатая диаграмма с заливкой",**
**"Ступенчатая линейная диаграмма---Прямоугольная линейчатая диаграмма со ступеньками",**
**"Линейная диаграмма---Линейная диаграмма",**
**"Сплайновая диаграмма---Кривая диаграмма"**}
;
String[] groupTitleArr = {
**"Базовый тип диаграммы --- Базовая диаграмма",**
**"Специальный тип диаграммы --- Специальная диаграмма",**
**"Смешанный тип диаграммы --- Смешанная диаграмма",**
**"Пользовательский стиль диаграммы---Некоторые пользовательские стили диаграмм",**
**"Рисование диаграммы с помощью AAOptions---Рисование с использованием Options",**
**"Только обновление данных --- Немедленное обновление данных диаграммы",**
**"Функция JS для AAOptionns --- Рисование с использованием функций JS в Options",**
**"Оценка функции строки JS---Выполнение функций JS",**
**"Двойные диаграммы Linked Work---Работа с двойными диаграммами",**
**"Прокручиваемая диаграмма --- Прокручиваемая диаграмма"**
};
ExpandableListContainer listContainer = (ExpandableListContainer) findComponentById(ResourceTable.Id_exlist_lol);
MyBaseExpandableItemProvider myAdapter = new MyBaseExpandableItemProvider(groupTitleArr, chartTypeNameArr, this);
listContainer.setItemProvider(myAdapter);
//Установка события клика для списка
listContainer.setOnChildClickListener(new ExpandableListContainer.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListContainer parent, Component v, int groupPosition, int childPosition, long id) {
return true;
}
});
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )