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

OSCHINA-MIRROR/chinasoft4_ohos-Shatter

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект Shatter

Описание проекта:

  • Название проекта: Shatter.
  • Серия: openharmony, компонент для адаптации сторонних компонентов.
  • Функция: реализация библиотеки для разделения UI-модулей.
  • Состояние переноса проекта: основная функция выполнена.
  • Вызовы: отсутствуют.
  • Версия разработки: SDK6, DevEco Studio2.2 Beta1.
  • Базовая версия: Release 1.0.8.

Демонстрация эффекта:

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

  1. В файле build.gradle в корневом каталоге проекта:
allprojects {
    repositories {
        maven {
            url 'https://s01.oss.sonatype.org/content/repositories/releases/'
        }
    }
}
  1. В файле build.gradle модуля entry:
dependencies {
    implementation('com.gitee.chinasoft_ohos:Shatter:1.0.0')
    ......  
}

В среде SDK6 и DevEco Studio 2.2 Beta1 проект можно запустить напрямую. Если запуск не удаётся, удалите файлы .gradle, .idea, build, gradle и build.gradle и создайте новый проект на основе вашей версии. Затем скопируйте соответствующие файлы из нового проекта в корневой каталог.

Использование:

Способ 1: Чтобы Shatter отслеживал весь жизненный цикл AbilitySlice, реализуйте интерфейс ShatterAbilitySliceInterface в классе BaseAbilitySlice. Переопределите необходимые методы жизненного цикла, например:

public class BaseAbilitySlice extends AbilitySlice implements ShatterAbilitySliceInterface {
    static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MY_TAG");

    private ShatterManager mShatterManager;

    /**
     * getShatterManager
     *
     * @return ShatterManager
     */
    public ShatterManager getShatterManager() {
        if (mShatterManager == null) {
            mShatterManager = new ShatterManager(this);
        }
        return mShatterManager;
    }

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        HiLog.info(LABEL, "BaseAbilitySlice onStart() called");
        dispatch(LifeEvent.ON_START, intent);
    }

    @Override
    public void onActive() {
        super.onActive();
        dispatch(LifeEvent.ON_ACTIVE);
    }

    //...

    /**
     * Разделение событий жизненного цикла
     *
     * @param event
     * @param args
     */
    protected void dispatch(String event, Object... args) {
        HiLog.info(LABEL, getClass().getSimpleName() + " dispatch " + event + "()  --");
        MethodExecutor.scheduleMethod(event, getShatterManager(), args);
    }
}

Способ 2: Если необходимо отслеживать только часть жизненного цикла, добавьте следующий код в метод onCreate() класса BottomShatter:

public class BottomShatter extends Shatter {
    static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MY_TAG");

    private static final String TAG = "BottomShatter";
    private static final int REQUEST_CODE = 100;

    private Button mBottomBtn;

    @Override
    public String getTag() {
        return TAG;
    }

    @Override
    protected int getLayoutResId() {
        return kale.ui.ResourceTable.Layout_shatter_bottom;
    }

    @Override
    public void onBindComponent(Component rootView) {
        mBottomBtn = (Button) findViewById(kale.ui.ResourceTable.Id_btn_start);
        mBottomBtn.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                Intent secondIntent = new Intent();
                Operation operation = new Intent.OperationBuilder()
                        .withDeviceId("")
                        .withBundleName("kale.ui")
                        .withAbilityName("kale.ui.ability.PagerAbility")
                                .build();
                secondIntent.setOperation(operation);
                startAbilityForResult(secondIntent, REQUEST_CODE);
            }
        });
    }

    @Override
    public void onAbilityResult(int requestCode, int resultCode, Intent data) {
        super.onAbilityResult(requestCode, resultCode, data);
        HiLog.info(LABEL, "bottom onAbilityResult() called with: requestCode = [" + requestCode + "], resultCode = ["
                + resultCode + "], data = [" + data + "]");
    }
}

Тестирование:

CodeCheck — код протестирован без ошибок. CloudTest — код протестирован без ошибок. Проверка на вирусы — прошла успешно. Текущая версия demo функционально не отличается от исходного компонента.

Версия:

1.0.0

Авторские права и лицензии:

Copyright 2016-2019 Jack Tony

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
``` ГАРАНТИИ ИЛИ УСЛОВИЯ ЛЮБОГО РОДА, явные или подразумеваемые.
См. Лицензию для конкретного языка, регулирующего разрешения и
ограничения по Лицензии.

Комментарии ( 0 )

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

Введение

Shatter — это библиотека, которая заменяет fragment для разделения UI-модулей. Она в основном управляет UI-блоками и может поддерживать жизненный цикл, идентичный activity. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/chinasoft4_ohos-Shatter.git
git@api.gitlife.ru:oschina-mirror/chinasoft4_ohos-Shatter.git
oschina-mirror
chinasoft4_ohos-Shatter
chinasoft4_ohos-Shatter
master