我正在通过socket.io在android中创建聊天应用程序,其中包括recylerview / adapter和模型类。我还分别成功地添加了表情符号库,但我想在同一活动中添加表情符号库和recyclerview。您可以指导我如何在同一页面(活动)上进行操作。回应将不胜感激。
我正在遵循这些指南。
https://github.com/hani-momanii/SuperNova-Emoji
https://dev.to/medaymentn/creating-a-realtime-chat-app-with-android--nodejs-and-socketio-4o55
答案 0 :(得分:1)
聊天视图的布局文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/contentRoot1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorchatbg"
android:orientation="vertical">
<LinearLayout
android:id="@+id/contentRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/layout_header"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:layout_alignParentTop="true"
android:background="@color/voilacabs">
<RelativeLayout
android:id="@+id/layout_back_arrow"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingLeft="@dimen/margin_15"
android:paddingRight="@dimen/margin_15">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:src="@drawable/back_arrow" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/margin_10"
android:layout_toRightOf="@+id/layout_back_arrow"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/txt_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Username"
android:textColor="@color/white"
android:textSize="16dp" />
<TextView
android:id="@+id/txt_typing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Typing..."
android:textColor="@color/white"
android:textSize="16dp"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<android.support.v7.widget.RecyclerView
android:id="@+id/messageRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none" />
<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_gravity="bottom"
android:background="@drawable/shadow_top" />
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="2dp">
<ImageView
android:id="@+id/buttonEmoji"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:padding="8dp"
android:src="@drawable/chat_smilly" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/buttonEmoji"
android:layout_weight="1">
<hani.momanii.supernova_emoji_library.Helper.EmojiconEditText
android:id="@+id/editTextMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:emojiconSize="28sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/lauout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/editTextMessage"
android:orientation="horizontal">
<ImageView
android:id="@+id/buttonMessage"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="8dp"
android:src="@drawable/chat_send" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
您的活动代码就像
private EmojIconActions emojIcon;
edMessage = (EmojiconEditText) findViewById(R.id.editTextMessage);
btEmoji = (ImageView) findViewById(R.id.buttonEmoji);
emojIcon = new EmojIconActions(this, contentRoot, edMessage, btEmoji);
emojIcon.ShowEmojIcon();