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

OSCHINA-MIRROR/HarmonyOS-tpc-FloatingGroupExpandableListView

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

FloatingGroupExpandableListView

Введение:

FloatingGroupExpandableListView — это библиотека с открытым исходным кодом, которая предоставляет плавающий список групп с использованием пользовательских компонентов с возможностью разворачивать и сворачивать элементы.

Инструкции по использованию:

  1. Подготовьте элементы группы с помощью следующего кода:

        private void getGroupItems() {
            mGroupNameItem.add(ResUtil.getString(this, ResourceTable.String_item_cupcake));
            mGroupNameItem.add(ResUtil.getString(this, ResourceTable.String_item_donut));
            mGroupNameItem.add(ResUtil.getString(this, ResourceTable.String_item_eclair));
            mGroupNameItem.add(ResUtil.getString(this, ResourceTable.String_item_froyo));
            mGroupNameItem.add(ResUtil.getString(this, ResourceTable.String_item_gingerbread));
            mGroupNameItem.add(ResUtil.getString(this, ResourceTable.String_item_honeycomb));
            mGroupNameItem.add(ResUtil.getString(this, ResourceTable.String_item_ice_cream_sandwich));
            mGroupNameItem.add(ResUtil.getString(this, ResourceTable.String_item_jelly_bean));
            mGroupNameItem.add(ResUtil.getString(this, ResourceTable.String_item_kitkat));
            mFinalGroupNameItem.addAll(mGroupNameItem);
        }
  1. Подготовьте изображения для элементов группы с помощью следующего кода:

        private void getGroupIcons() {
            mGroupImageItem.add(ResourceTable.Media_cupcake);
            mGroupImageItem.add(ResourceTable.Media_donut);
            mGroupImageItem.add(ResourceTable.Media_eclair);
            mGroupImageItem.add(ResourceTable.Media_froyo);
            mGroupImageItem.add(ResourceTable.Media_gingerbread);
            mGroupImageItem.add(ResourceTable.Media_honeycomb);
            mGroupImageItem.add(ResourceTable.Media_ice_cream_sandwich);
            mGroupImageItem.add(ResourceTable.Media_jelly_bean);
            mGroupImageItem.add(ResourceTable.Media_kitkat);
        }
  1. Подготовьте адаптер для отображения элементов списка:
        ExpandableListAdapter expandableListAdapter = new  ExpandableListAdapter<String>
                  (this, com.diegocarloslima.fgelv.lib.ResourceTable.Layout_sample_ability_list_group_item,
                  mGroupNameItem, mGroupImageItem) {
                // Code here for binding group & child item
            }
            mGroupContainer. setAdapter(expandableListAdapter);
  1. API ExpandableListViewAdapter:
        ExpandableListAdapter expandableListAdapter = new ExpandableListAdapter<String>(this, ResourceTable.Layout_sample_ability_list_group_item,
         mGroupNameItem, mGroupImageItem) {
                    @Override
                    protected void bind(ViewHolder holder, String text, Integer image, int position) {

                    }
              }
              
            a.  с помощью holder можно установить текст
               holder.setText(viewId, String text, color, textSize)
               int  viewId - предоставить идентификатор текстового компонента, в котором нужно отобразить содержимое.
               String text - текстовое содержимое, которое нужно отобразить.
               Color color - цвет текста.
               int textsize - размер текста для отображения.

            b. с помощью holder можно установить изображение группы
                  holder.setGroupImage(viewId, imageRedId, shape, scaleMode, groupImageColor)
                  int viewId - предоставить идентификатор группового ImageView-компонента, для которого можно задать групповое изображение.
                  Integer imageResId - предоставить ID изображения.
                  int shape - форма группового изображения.
                  Image.ScaleMode scaleMode - режим масштабирования для изображения.
                  int groupImageColor - groupImageColor, который нужно задать для фона изображения.

             c. с помощью holder можно установить дочернее изображение
                 holder.setChildImage(viewId, imageRedId, width, height, margin)
                 int viewId - предоставить идентификатор компонента группового ImageView, для которого можно задать дочернее изображение.
                 Integer imageResId - предоставить ID изображения.
                 int width - ширина дочернего изображения.
                 int height - высота. **Дочернее изображение**

margin — отступ дочернего изображения.

d. С помощью holder можно задать фон группового элемента:
holder.setGroupItemBackground(int groupItemLayoutId, int groupItemColor)
int groupItemLayoutId — идентификатор зависимого макета группового элемента.
int groupItemColor — цвет контейнера макета, фона группового элемента. 

e. С помощью holder можно установить разделитель группового элемента: 
holder.setGroupItemDivider(int dividerId, int color)
int dividerId — идентификатор разделителя.
int color — цвет разделителя.  

**Добавление и удаление дочерних элементов**

При нажатии на групповой элемент адаптера расширяемого списка:
expandableListAdapter.setOnItemClickListener(new ExpandableListAdapter.OnItemClickListener() {
@Override
public void onItemClick(Component component, int position) {
// логика удаления дочерних элементов при сворачивании в зависимости от необходимости
removeChildItems(actualItemPosition, clickedItem);
// логика добавления дочерних элементов при разворачивании в зависимости от необходимости
addChildItems(actualItemPosition, clickedItem);
}
});

## Инструкция по установке:

Способ 1:
Сгенерируйте пакет .har с помощью библиотеки и добавьте пакет .har в папку libs.
Добавьте следующий код в начальный gradle:
implementation fileTree (dir: 'libs', include: ['*.jar', '*.har'])

Способ 2:
allprojects{
repositories{
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:FloatingGroupExpandableListView:1.0.1'

## Лицензия

Copyright 2013 Diego Carlos Lima

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-FloatingGroupExpandableListView.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-FloatingGroupExpandableListView.git
oschina-mirror
HarmonyOS-tpc-FloatingGroupExpandableListView
HarmonyOS-tpc-FloatingGroupExpandableListView
master