Кастомизация
Вступление
Наша библиотека предоставляет возможность кастомизации графического интерфейса, для этого необходимо:
- Создать стиль в своём приложении, унаследовав его от стиля, который необходимо изменить;
- Изменить значения необходимых атрибутов;
- Воспользоваться методом replaceResourceId класса UsedeskResourceManager, тем самым указав SDK каким стилем заменить стандартный. Пример:
UsedeskResourceManager.replaceResourceId(ru.usedesk.chat_gui.R.style. Usedesk_Chat_Screen, R.style.Usedesk_Chat_Screen_Custom)
Концепция
В библиотеке присутствует множество стилей, которые можно заменять с помощью UsedeskResourceManager, как показано выше.
Каждый из этих стилей относится к конкретному объекту в интерфейсе, создаваемому с помощью LayoutInflater, например такие как страницы или элементы списка.Такой стиль содержит атрибуты, в значениях которых могут храниться различные значения или другие стили.
Вложенные стили не нужно переопределять с помощью UsedeskResourceManager, но можно заменить в родительском стиле.
Список стилей, переопределяемых через UsedeskResourceManager:
- Usedesk.Chat.Screen
- Usedesk.Chat.Attachment.Dialog
- Usedesk.Chat.Offline.Form.Success.Dialog
- Usedesk.Chat.Attached.File
- Usedesk.Chat.Message.Text.Client
- Usedesk.Chat.Message.File.Client
- Usedesk.Chat.Message.Image.Client
- Usedesk.Chat.Message.Text.Agent
- Usedesk.Chat.Message.File.Agent
- Usedesk.Chat.Message.Image.Agent
- Usedesk.Chat.Show.File
- Usedesk.KnowledgeBase.Screen
- Usedesk.KnowledgeBase.Sections.Page
- Usedesk.KnowledgeBase.Article.Content.Page.Item
- Usedesk.KnowledgeBase.Sections.Page.Section
- Usedesk.KnowledgeBase.Categories.Page.Category
- Usedesk.KnowledgeBase.Articles.Page.Article
- Usedesk.KnowledgeBase.Articles.Search.Page.Article
Типовые стили
Так как многие стили относятся к элементам интерфейса с одним и тем же типом, есть несколько типовых стилей, которые имеют похожие атрибуты как стандартные для android так и нашей библиотеки.
В таких стилях можно переопределить все атрибуты, которые есть у элемента, например:
- layout_width
- layout_height
- margin
- padding
- и др.
Однако, у некоторых таких стилей есть некоторые особенности, связанные со стандартными атрибутами, а также нестандартные атрибуты.
Стили Text
Стили, оканчивающиеся на Text относятся к элементам с типом TextView, например:
Usedesk.Chat.Attachment.Dialog.Storage.Text
У такого стиля текст переопределяется следующими аргументами:
- text
- usedesk_text_1
- usedesk_text_2
- usedesk_text_3
И только в том случае, если они заданы в стиле изначально.
Стили Image
Стили, оканчивающиеся на Image относятся к элементам с типом ImageView, например:
Usedesk.Chat.Attachment.Dialog.Storage.Image
У такого стиля изображение переопределяется следующими аргументами:
- srcCompat
- usedesk_drawable_1
- usedesk_drawable_2
И только в том случае, если они заданы в стиле изначально.
Стили InputLayout
Стили, оканчивающиеся на InputLayout относятся к элементам с типом InputLayout и не имеют нестандартных аргументов, например:
Usedesk.Chat.Screen.Offline.Form.Email.InputLayout
Стили EditText
Стили, оканчивающиеся на EditText относятся к элементам с типом EditText и не имеют нестандартных аргументов, например.
Usedesk.Chat.Screen.Offline.Form.Email.EditText