1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/thoseyears-ohos-extension

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
ExpandableListContainer.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 01:25 d5812a8

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/thoseyears-ohos-extension.git
git@api.gitlife.ru:oschina-mirror/thoseyears-ohos-extension.git
oschina-mirror
thoseyears-ohos-extension
thoseyears-ohos-extension
master