Создание диалогов (сообщений) в приложении
Пишу приложение, и необходимо реализовать диалоги сообщений, по типу как в Vk, Telegram и т.д.
Как это можно сделать? Какие библиотеки использовать или как правильнее будет написать?
Ответы (1 шт):
Понятие - по типу как в Vk, Telegram и т.д. максимально размытое и непонятное. Для создания диалогов вы можете использовать как сторонние библиотеки так и самостоятельно их создавать с нуля. Если вы склоняетесь в сторону библиотек, то вот есть список разнообразных диалогов и вы выбрав нужный достигнете своей цели. Если вы хотите самостоятельно создать и настроить диалог то для начала нужно создавать разметку для диалогового окна, например такая:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_gravity="bottom"
android:background="@drawable/dialog_background"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center_horizontal|center_vertical"
android:text="@string/questionnaire_alert_message"
android:textColor="@color/gray"
android:textSize="16sp" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/test_color" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="10">
<TextView
android:id="@+id/agree"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="4.98"
android:gravity="center_vertical|center_horizontal"
android:text="@android:string/yes"
android:textColor="#CD0000"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.04"
android:background="@color/test_color" />
<TextView
android:id="@+id/cancel"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="4.98"
android:gravity="center_vertical|center_horizontal"
android:text="@android:string/cancel"
android:textColor="@color/colorAccent"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
дальше вы ее будете использовать при создании диалога:
private fun exitDialog() {
val dialog = Dialog(context!!)
dialog.setContentView(R.layout.polls_exit_dialogue)
val window = dialog.window
val wlp = window!!.attributes
wlp.gravity = Gravity.BOTTOM
window.attributes = wlp
dialog.findViewById<View>(R.id.agree).setOnClickListener {
dialog.dismiss()
moveHome()
}
dialog.findViewById<View>(R.id.cancel).setOnClickListener {
dialog.dismiss()
}
Objects.requireNonNull<Window>(dialog.window).setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialog.show()
}
таким образом создавая такой диалог вы можете контролировать все этапы его создания и менять то что вам нужно и как нужно. Вот диалог из примера:
UPDATE
Как мне указал @ЮрийСПб есть вероятность что вы имели диалоги как общение между пользователями. То есть вопрос можно перефразировать так - "как сделать чат?". Опять таки это чисто гипотетическое предположение того что вы имели в виду. Для того чтобы реализовать такое в приложении нужно делать две части: клиентскую и серверную. За серверную я вам рассказать много не смогу, чтобы вас не запутать. А про клиентскую часть было рассказано в этом вопросе.
