Rox.Chat Mobile Widget para Android
O Rox.Chat Mobile Widget é um componente completo, que contém uma lista de mensagens, um campo de entrada e elementos adicionais, como bate-papos. O Chat é um componente multifuncional que permite o envio de mensagens, fotos, vídeos, arquivos e muito mais. Apesar do grande número de funções, o chat é um componente View
comum do Android e pode ser facilmente integrado ao aplicativo por meio do layout e do código XML. O chat foi criado com base no princípio de que todos os valores padrão são definidos, mas tudo pode ser redefinido de acordo com suas necessidades.
Ele combina extrema facilidade de uso com funcionalidade avançada. O Rox.Chat Mobile Widget é uma boa alternativa ao uso do Rox.Chat Mobile SDK, pois vem com todos os elementos e adaptadores da interface do usuário e requer um esforço mínimo de integração.
1. Adição do componente Mobile Widget às dependências
// kotlin dsl
dependencies {
implementation("yourpackage:chat:version")
}
// groovy
dependencies {
implementation("yourpackage:chat:version")
}
2. Configuração do Mobile Widget
O Mobile Widget é um componente de visualização normal que pode ser definido programaticamente por meio de código e por meio de layouts XML.
Usando XML:
<chat.roxchat.chatview.ui.ChatView
android:id="@+id/chatView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:chv_account_name="https://demo.rox.chat"
app:chv_location_name="mobile" />
Os parâmetros chv_account_name
e chv_location_name
definem sua conta do Rox.Chat e sua localização. Esses parâmetros também podem ser alterados no código, especificando a sessão do Rox.Chat.
Programmaticamente:
O próprio Chat funciona com o Rox.Chat Mobile SDK. Para configurar o Mobile Widget, passe a ele a sessão configurada que você usou anteriormente com o Rox.Chat Mobile SDK. Você precisa passar a sessão do Rox.Chat para o Mobile Widget por meio do método ChatView#setSession
. Agora o Mobile Widget fará todo o trabalho para você.
ChatView chatView = new ChatView(getContext());
chatView.setSession(session);
containerView.addView(chatView);
The session is set up like this:
RoxSession session = Rox.newSessionBuilder()
.setContext(getContext())
.setAccountName("https://demo.rox.chat")
.setLocation("mobile")
...
.build();
Em seguida, a visualização é responsável por trabalhar com a sessão, iniciando, interrompendo e destruindo-a.
A configuração do software do Mobile Widget oferece uma configuração flexível. Você também pode combinar essas duas abordagens. Declare um ChatView
na marcação, localize a exibição no código e configure uma sessão.
3. Personalização do tema
Você também pode substituir as cores padrão do Mobile Widget. Você pode criar seu próprio estilo herdando o ChatViewDefaultStyle
.
<style name="MyChatTheme" parent="ChatViewDefaultStyle">
<item name="chv_bar_background">@color/white</item>
<item name="chv_message_border">@color/message_border</item>
...
</style>
No layout, especifique o estilo que você criou no campo app:chv_chat_style
do ChatView
. Aqui está um exemplo:
<chat.rox.chatview.ui.ChatView
android:id="@+id/chatView"
app:chv_chat_style="@style/MyChatTheme"
...
/>
Há uma lista de cores e drawables que podem ser substituídos. Essa lista é mostrada abaixo:
Item de estilo | Tipo |
---|---|
chv_primary_color |
integer or color |
chv_secondary_color |
integer or color |
chv_accent_color |
integer or color |
chv_bar_background |
integer or color |
chv_message_border |
integer or color |
chv_text_light |
integer or color |
chv_text_strong |
integer or color |
chv_text_medium |
integer or color |
chv_text_hint |
integer or color |
chv_sent_bubble |
integer or color |
chv_sent_text |
integer or color |
chv_sent_link_text |
integer or color |
chv_sent_time_text |
integer or color |
chv_sent_edited_text |
integer or color |
chv_sent_selected |
integer or color |
chv_sent_divider |
integer or color |
chv_sent_file_data |
integer or color |
chv_received_bubble |
integer or color |
chv_received_text |
integer or color |
chv_received_link_text |
integer or color |
chv_received_time_text |
integer or color |
chv_received_edited_text |
integer or color |
chv_received_selected |
integer or color |
chv_received_divider |
integer or color |
chv_received_sender_name |
integer or color |
chv_system_bubble |
integer or color |
chv_system_text |
integer or color |
chv_system_link_text |
integer or color |
chv_system_time_text |
integer or color |
chv_buttons_background |
integer or color |
chv_buttons_pending |
integer or color |
chv_buttons_complete |
integer or color |
chv_buttons_canceled |
integer or color |
chv_message_replied |
integer or color |
chv_prompt_syncing |
integer or color |
chv_prompt_net_lost |
integer or color |
chv_prompt_net_losing |
integer or color |
chv_message_text_size |
dimension |
chv_message_corner_radius |
dimension |
chv_message_menu_background |
integer or color |
chv_chat_menu_background |
integer or color |