Если вы хотите удалить второй элемент. удалить элемент, а оставшаяся часть будет обработана recyclerAdapter, чтобы удалить строку и выровнять данные.
внутри вашего onClickListener, удалить данные из ArrayList и вызвать notifyItemRemoved ()
write ваш onClick внутри класса ViewHolder
onClick(View view){
mHeaderText.remove(getAdapterPosition());
notifyItemRemoved(getAdapterPosition());
}
Надеюсь, это поможет вам.
Ваш вопрос в контексте сокращения стандартного кода путем создания пользовательского компонента с высокой возможностью повторного использования и обслуживания.
blockquote>Таким образом, вы можете достичь этого с помощью 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 )
Преимущества
- [1120 ] В будущем, когда вы захотите изменить свои пользовательские виджеты или константы ресурсов, вам придется менять их только в одном месте, и они будут отражаться во всех местах.
Также вы можете использовать эти пользовательские виджеты и константы ресурсов во всех ваших проектах с незначительными изменениями.
Код представлений выглядит более понятным и понятным.