This media is not supported in your browser
VIEW IN TELEGRAM
🔥 TagGroupView — удобный виджет для тегов в Android!
Добавляй, удаляй и стилизуй теги красиво и просто 🎨
✅ Функции:
➕ Добавление тегов: addTag(Tag tag)
❌ Удаление: removeTag(int position)
🧹 Очистка: clear()
🎨 Настройка стиля: цвет текста, фон, рамка, размер текста, закругления, иконка закрытия
🔒 Закрываемые теги: setClosable(true)
📝 Получение данных: имена, цвета, полная информация
📏 Отступы между тегами: setHorizontalSpacing(), setVerticalSpacing()
👂 Слушатель удаления: setOnTagRemoveListener()
💻 Пример использования:
tagGroupView.addTag(new Tag("Android", Color.BLUE));
tagGroupView.setTextColor(Color.WHITE);
tagGroupView.setBackgroundColor(Color.DKGRAY);
tagGroupView.setCornerSize(16f);
tagGroupView.setClosable(true);
Подробнее вы можете изучать в проекте skpro.
<custom.tag.view.TagGroupView
android:id="@+id/tagGroupView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
Добавляй, удаляй и стилизуй теги красиво и просто 🎨
✅ Функции:
➕ Добавление тегов: addTag(Tag tag)
❌ Удаление: removeTag(int position)
🧹 Очистка: clear()
🎨 Настройка стиля: цвет текста, фон, рамка, размер текста, закругления, иконка закрытия
🔒 Закрываемые теги: setClosable(true)
📝 Получение данных: имена, цвета, полная информация
📏 Отступы между тегами: setHorizontalSpacing(), setVerticalSpacing()
👂 Слушатель удаления: setOnTagRemoveListener()
💻 Пример использования:
tagGroupView.addTag(new Tag("Android", Color.BLUE));
tagGroupView.setTextColor(Color.WHITE);
tagGroupView.setBackgroundColor(Color.DKGRAY);
tagGroupView.setCornerSize(16f);
tagGroupView.setClosable(true);
Подробнее вы можете изучать в проекте skpro.
🔥3👍1
Нашел интересную библиотеку и решил поделиться.
💻 Простой виджет движения для разблокировки на Kotlin
dependencies {
implementation "
}
— полностью векторный, никаких .png
— поддерживаются разные анимации
— легко интегрируется (просто строка компиляции gradle)
— подстраивается под тему приложения
— можно использовать из коробки, всё будет работать
🖥 GitHub
💻 Простой виджет движения для разблокировки на Kotlin
dependencies {
implementation "
com.ncorti:slidetoact:0.11.0"}
— полностью векторный, никаких .png
— поддерживаются разные анимации
— легко интегрируется (просто строка компиляции gradle)
— подстраивается под тему приложения
— можно использовать из коробки, всё будет работать
🖥 GitHub
20👍5❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Нашёл ещё одну годную библиотеку для Android и хочу поделиться 👇
📚 Удобный виджет для двухуровневых списков — LinkageRecyclerView
dependencies {
implementation 'com.kunminx.linkage:linkage-recyclerview:2.7.0'
}
— готовая реализация связанного списка (категории слева + элементы справа)
— работает на базе RecyclerView без лишней сложности
— полностью кастомизируется (адаптеры, layout, клики, стили)
— поддерживает smooth scroll, футеры и sticky заголовки
— легко адаптируется под меню, категории товаров, настройки и многое другое
— минимальная интеграция: передаёшь список — всё работает из коробки
— современный, чистый код, без тяжёлых зависимостей
🖥 GitHub
📚 Удобный виджет для двухуровневых списков — LinkageRecyclerView
dependencies {
implementation 'com.kunminx.linkage:linkage-recyclerview:2.7.0'
}
— готовая реализация связанного списка (категории слева + элементы справа)
— работает на базе RecyclerView без лишней сложности
— полностью кастомизируется (адаптеры, layout, клики, стили)
— поддерживает smooth scroll, футеры и sticky заголовки
— легко адаптируется под меню, категории товаров, настройки и многое другое
— минимальная интеграция: передаёшь список — всё работает из коробки
— современный, чистый код, без тяжёлых зависимостей
🖥 GitHub
20❤2🔥1
Как автоматически убирать фокус с EditText при клике вне него в Android
В Android часто возникает ситуация, когда пользователь хочет убрать фокус с EditText, кликнув по любой части экрана. Особенно это актуально, если клавиатура закрывается только вручную. Ниже описан простой и универсальный способ, который работает для EditText как в Activity, так и во фрагментах.
1. Проблема
Когда EditText в фокусе, клавиатура остаётся открытой, и пользователю нужно явно нажать “Назад” или кликнуть на другой EditText. Если экран содержит множество кнопок, текстов и других элементов, вручную добавлять OnTouchListener на каждый элемент неудобно.
2. Решение через dispatchTouchEvent
Android позволяет перехватывать все касания на экране через метод dispatchTouchEvent в Activity.
Преимущества:
Работает для всех EditText на экране.
Не зависит от того, находится ли EditText в фрагменте или Activity.
Не нужно назначать слушатели на каждую кнопку или view.
3. Код для Activity
Комментарии к коду:
getCurrentFocus() возвращает любой View с фокусом, даже если он в фрагменте.
Rect outRect определяет область EditText на экране.
contains() проверяет, кликнули ли вне EditText.
clearFocus() снимает фокус.
InputMethodManager.hideSoftInputFromWindow() скрывает клавиатуру.
4. Куда вставлять код
В Activity, где находятся ваши фрагменты, нужно просто переопределить метод dispatchTouchEvent.
Для EditText в фрагментах дополнительных действий не требуется: Activity “видит” их через getCurrentFocus().
Этот метод будет работать для всех EditText на всех фрагментах, без отдельной настройки каждого элемента.
5. Итог
Использование dispatchTouchEvent — это простой и универсальный способ управлять фокусом EditText:
Работает с любым количеством EditText.
Не зависит от расположения элементов в иерархии.
Прячет клавиатуру автоматически.
Этот метод значительно упрощает пользовательский опыт, особенно на экранах с множеством интерактивных элементов.
для skpro импортируйте
Java код вставьте в moreblock между скобками
}
{
В Android часто возникает ситуация, когда пользователь хочет убрать фокус с EditText, кликнув по любой части экрана. Особенно это актуально, если клавиатура закрывается только вручную. Ниже описан простой и универсальный способ, который работает для EditText как в Activity, так и во фрагментах.
1. Проблема
Когда EditText в фокусе, клавиатура остаётся открытой, и пользователю нужно явно нажать “Назад” или кликнуть на другой EditText. Если экран содержит множество кнопок, текстов и других элементов, вручную добавлять OnTouchListener на каждый элемент неудобно.
2. Решение через dispatchTouchEvent
Android позволяет перехватывать все касания на экране через метод dispatchTouchEvent в Activity.
Преимущества:
Работает для всех EditText на экране.
Не зависит от того, находится ли EditText в фрагменте или Activity.
Не нужно назначать слушатели на каждую кнопку или view.
3. Код для Activity
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
// Получаем текущий фокус
View v = getCurrentFocus();
if (v instanceof EditText) {
Rect outRect = new Rect();
// Получаем глобальные координаты EditText
v.getGlobalVisibleRect(outRect);
// Проверяем, кликнули ли вне EditText
if (!outRect.contains((int) ev.getRawX(), (int) ev.getRawY())) {
// Снимаем фокус
v.clearFocus();
// Прячем клавиатуру
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
}
}
return super.dispatchTouchEvent(ev);
}
Комментарии к коду:
getCurrentFocus() возвращает любой View с фокусом, даже если он в фрагменте.
Rect outRect определяет область EditText на экране.
contains() проверяет, кликнули ли вне EditText.
clearFocus() снимает фокус.
InputMethodManager.hideSoftInputFromWindow() скрывает клавиатуру.
4. Куда вставлять код
В Activity, где находятся ваши фрагменты, нужно просто переопределить метод dispatchTouchEvent.
Для EditText в фрагментах дополнительных действий не требуется: Activity “видит” их через getCurrentFocus().
Этот метод будет работать для всех EditText на всех фрагментах, без отдельной настройки каждого элемента.
5. Итог
Использование dispatchTouchEvent — это простой и универсальный способ управлять фокусом EditText:
Работает с любым количеством EditText.
Не зависит от расположения элементов в иерархии.
Прячет клавиатуру автоматически.
Этот метод значительно упрощает пользовательский опыт, особенно на экранах с множеством интерактивных элементов.
для skpro импортируйте
import android.view.inputmethod.InputMethodManager;Java код вставьте в moreblock между скобками
}
Java code {
❤2🥰1
Media is too big
VIEW IN TELEGRAM
XPopup — удобная библиотека для красивых диалогов и всплывающих окон в Android
Адаптировал XPopup под skpro
Сделал полноценный рабочий пример библиотеки XPopup, полностью адаптированный под skpro.
Что было сделано:
Перевёл оригинальный пример с китайского на английский.
Подключил все нужные зависимости и собрал их так, чтобы проект запускался без ошибок.
Настроил структуры, макеты и логику, чтобы XPopup корректно работал в skpro.
Теперь библиотеку можно легко изучать и использовать даже без Android Studio — прямо внутри skpro.
🖥 GitHub
Адаптировал XPopup под skpro
Сделал полноценный рабочий пример библиотеки XPopup, полностью адаптированный под skpro.
Что было сделано:
Перевёл оригинальный пример с китайского на английский.
Подключил все нужные зависимости и собрал их так, чтобы проект запускался без ошибок.
Настроил структуры, макеты и логику, чтобы XPopup корректно работал в skpro.
Теперь библиотеку можно легко изучать и использовать даже без Android Studio — прямо внутри skpro.
🖥 GitHub
❤1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Обновление SimpleChat
Решил немного обновить проект SimpleChat для примера с использованием firebase
Добавил регистрацию и аутентификацию через firebase Auth
Подключил firebase real time для чата
Решил немного обновить проект SimpleChat для примера с использованием firebase
Добавил регистрацию и аутентификацию через firebase Auth
Подключил firebase real time для чата
❤1🔥1