Кастомизация
Вступление
Наша библиотека предоставляет возможность кастомизации графического интерфейса.
Чат и База знаний кастомизируются по-разному:
- Чат — через XML-стили, как описано ниже;
- База знаний — с версии 4.1.0 через класс UsedeskKnowledgeBaseTheme, см. "Кастомизация" в разделе База знаний (v4.1.0+).
Кастомизация чата
Чтобы изменить стиль, необходимо:
- Создать стиль в своём приложении, унаследовав его от стиля, который необходимо изменить;
- Изменить значения необходимых атрибутов;
- Воспользоваться методом 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.Video.Client
- Usedesk.Chat.Message.Audio.Client
- Usedesk.Chat.Message.Text.Agent
- Usedesk.Chat.Message.File.Agent
- Usedesk.Chat.Message.Image.Agent
- Usedesk.Chat.Message.Video.Agent
- Usedesk.Chat.Message.Audio.Agent
- Usedesk.Chat.Show.File
Типовые стили
Так как многие стили относятся к элементам интерфейса с одним и тем же типом, есть несколько типовых стилей, которые имеют похожие атрибуты как стандартные для android так и нашей библиотеки.
В таких стилях можно переопределить все атрибуты, которые есть у элемента, например:
- layout_width
- layout_height
- margin
- padding
- и др.
Однако, у некоторых таких стилей есть некоторые особенности, связанные со стандартными атрибутами, а также нестандартные атрибуты.
Стили Text
Стили, оканчивающиеся на Text относятся к элементам с типом TextView, например:
Usedesk.Chat.Attachment.Dialog.Storage.Text
У такого стиля текст переопределяется следующими аргументами:
- android: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.Common.Field.Text.InputLayout
Стили EditText
Стили, оканчивающиеся на EditText относятся к элементам с типом EditText и не имеют нестандартных аргументов, например:
Usedesk.Common.Field.Text.EditText