хранение констант внешнего вида и метрик в приложении Flutter

Если вы хотите удалить второй элемент. удалить элемент, а оставшаяся часть будет обработана recyclerAdapter, чтобы удалить строку и выровнять данные.

внутри вашего onClickListener, удалить данные из ArrayList и вызвать notifyItemRemoved ()

write ваш onClick внутри класса ViewHolder

onClick(View view){
        mHeaderText.remove(getAdapterPosition());
        notifyItemRemoved(getAdapterPosition());
}

Надеюсь, это поможет вам.

1
задан moonvader 20 January 2019 в 09:22
поделиться

1 ответ

Ваш вопрос в контексте сокращения стандартного кода путем создания пользовательского компонента с высокой возможностью повторного использования и обслуживания.

Таким образом, вы можете достичь этого с помощью 4 простых шагов:

1. Создайте каталог приложения как:

    -\resources (parent resource directory)
      -\menus (store all menus list constants)
      -\values
        -\app_strings.dart (store all strings constants)
        -\app_colors.dart  (store all colors constants)
        -\app_styles.dart  (store all styles i.e. material dark, light, cupertino etc.)
        -\app_dimens.dart  (store all dimension constants)

    -\components (parent component directory)
      -\your_custom_widget.dart(create custom component here)
      -\.....

    -\views
      -\your_view.dart(your view where you import custom component)

2. Создание констант ресурса:

Это очень простые шаги, так как вы должны добавлять только константы в соответствующие файлы ресурсов.

Пример - создание цветовых констант в app_colors.dart

import 'package:flutter/material.dart';

/// App Colors Class - Resource class for storing app level color constants
class AppColors {

  static const Color PRIMARY_COLOR = Color(0xFF35B4C5);
  static const Color PRIMARY_COLOR_LIGHT = Color(0xFFA5CFF1);
  static const Color PRIMARY_COLOR_DARK = Color(0xFF0D3656);
  static const Color ACCENT_COLOR = Color(0xFFF2DA04);
}

3. Создайте пользовательские компоненты:

Теперь в каталоге components создайте пользовательский виджет как:

class CustomWidget extends StatefulWidget{
   // Declare your widget parameters 
   final data-type your_parameter;
   .....
   .....
   .....

  // Create constant constructor 
  const CustomWidget(
    // Initialize all your widget parameters
    this.your_parameter
    .....
    .....
    .....)
  @override
  _CustomWidgetState createState() => _CustomWidgetState();
}


/// CustomWidget State class
class _CustomWidgetState extends State<CustomWidget>{
   // Here you should use existing widget from either material library or cupertino etc

    @override
    Widget build(BuildContext context) {
       return ExistingBaseWidget(
          // Set here all necessary parameters for customization
          // For setting constansts from resources you do it like this
          color : AppColors.COLOR_NAME,
          radius : AppDimens.BORDER_RADIUS,
          .......
       );
   }

}

4. Импортируйте пользовательский виджет в любые виды: В любые виды вы можете импортировать пользовательские виджеты, как использовать

child: CustomWidget(
       // Initialize all required parameters
       )

Преимущества

  1. [1120 ] В будущем, когда вы захотите изменить свои пользовательские виджеты или константы ресурсов, вам придется менять их только в одном месте, и они будут отражаться во всех местах.

  2. Также вы можете использовать эти пользовательские виджеты и константы ресурсов во всех ваших проектах с незначительными изменениями.

  3. Код представлений выглядит более понятным и понятным.

0
ответ дан Parikshit Chalke 20 January 2019 в 09:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: