介绍
本篇文章给大家分享的是有关怎么在android中利用recyclerview制作一个聊天界面,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
实现代码:
package com.itheima74.chatui; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Button; import android.widget.EditText; import java.util.ArrayList;/* * ,*聊天界面,使用recyclerview实现 ,*效果不好,发送的消息不能靠右对齐, ,*不知何故,怎么弄都弄不好,请教! ,*问题的解决:用Relativelayout代替linearlayout可以解决上述问题 ,*/public class  MainActivity extends AppCompatActivity  { ,private RecyclerView  recyclerview; ,private EditText  et_input; ,private ArrayListmMsgList; ,private MsgAdapter  mMsgAdapter; ,@Override ,protected void  onCreate (Bundle savedInstanceState), { ,super.onCreate (savedInstanceState); ,setContentView (R.layout.activity_main); ,initView (); ,initData (); ,initAdapter (); ,} ,private void  initAdapter (), {=,,mMsgAdapter  new MsgAdapter (mMsgList); ,recyclerview.setAdapter (mMsgAdapter); ,}/* * ,*初始化数据源 ,*/,private void  initData (), {=,,mMsgList  new ArrayList<在(); ,mMsgList.add (new 味精(“你好!“,,Msg.TYPE_RECEIVE)); ,mMsgList.add (new 味精(“你好!,Who is ?“,, Msg.TYPE_SEND)); ,mMsgList.add (new 味精(“却;能够is 杰克,Nice 用meet 你!“,,Msg.TYPE_RECEIVE)); ,}/* * ,*初始化控件 ,*/,private void  initView (), {=,recyclerview (RecyclerView), findViewById (R.id.recyclerview); EditText, et_input =, (), findViewById (R.id.et_input); ,Button bt_send =,(按钮),findViewById (R.id.bt_send); ,LinearLayoutManager layoutManager =, new LinearLayoutManager(这个); ,layoutManager.setOrientation (LinearLayoutManager.VERTICAL); ,recyclerview.setLayoutManager (layoutManager); ,bt_send.setOnClickListener (new View.OnClickListener (), { @Override才能 public 才能;void  onClick (View v), { String 才能;content =, et_input.getText () .toString () .trim ();//才能,如果用户没有输入,则是一个空串”;“ if 才能;(! content.isEmpty ()), { ,,mMsgList.add (new 味精(内容,Msg.TYPE_SEND));//,,,通知数据适配器刷新界面 ,,mMsgAdapter.notifyDataSetChanged (); ,,//,定位到最后一行 ,,recyclerview.scrollToPosition (mMsgList.size(),安康;1);//,,,输入框置空 ,,et_input.setText (“;”); ,,} ,,} ,}); ,} }
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; & lt; LinearLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android" ,android: layout_width=癿atch_parent" ,android: layout_height=癿atch_parent" ,android:背景=? d8e0e8" ,android:取向=皏ertical"祝辞 & lt; android.support.v7.widget.RecyclerView ,android: id=癅 + id/recyclerview" ,android: layout_width=癿atch_parent" ,android: layout_height=? dp" ,android: layout_weight=?“,/比; & lt; LinearLayout ,android: layout_width=癿atch_parent" ,android: layout_height=皐rap_content" ,android:取向=癶orizontal"祝辞 EditText & lt; android:才能id=癅 + id/et_input" android:才能layout_width=? dp" android:才能layout_height=皐rap_content" android:才能layout_weight=?”; android:才能暗示=扒胧淙胍⑺偷哪谌荨?/比; & lt;按钮 android:才能id=癅 + id/bt_send" android:才能layout_width=皐rap_content" android:才能layout_height=皐rap_content" android:文本=安拍芊⑺汀?/比; ,& lt;/LinearLayout> & lt;/LinearLayout>
package com.itheima74.chatui;/* * ,* Created by  My 提醒2017/3/3。 ,*/class Msg  { ,static final  int TYPE_RECEIVE =, 1; ,static final  int TYPE_SEND =, 2; ,String 内容; ,int 类型; ,味精(String 内容,int 类型),{=,this.content 内容;=,this.type 类型; ,} }怎么在android中利用recyclerview制作一个聊天界面