Кастомизация

Вступление

Наша библиотека предоставляет возможность кастомизации графического интерфейса, для этого необходимо:

  1. Создать стиль в своём приложении, унаследовав его от стиля, который необходимо изменить;
  2. Изменить значения необходимых атрибутов;
  3. Воспользоваться методом replaceResourceId класса UsedeskResourceManager, тем самым указав SDK каким стилем заменить стандартный. Пример:
UsedeskResourceManager.replaceResourceId(ru.usedesk.chat_gui.R.style.
Usedesk_Chat_Screen, R.style.Usedesk_Chat_Screen_Custom)

Концепция

В библиотеке присутствует множество стилей, которые можно заменять с помощью UsedeskResourceManager, как показано выше.
Каждый из этих стилей относится к конкретному объекту в интерфейсе, создаваемому с помощью LayoutInflater, например такие как страницы или элементы списка.Такой стиль содержит атрибуты, в значениях которых могут храниться различные значения или другие стили.
Вложенные стили не нужно переопределять с помощью UsedeskResourceManager, но можно заменить в родительском стиле.

Список стилей, переопределяемых через UsedeskResourceManager:



Типовые стили

Так как многие стили относятся к элементам интерфейса с одним и тем же типом, есть несколько типовых стилей, которые имеют похожие атрибуты как стандартные для 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