用Android写一个微信聊天布局,用线性布局和recyclerview实现
时间: 2023-05-21 19:01:12 浏览: 63
可以使用以下代码实现:
1. 在布局文件中添加一个 RecyclerView 和一个 EditText,用于输入聊天内容。
2. 创建一个 Adapter 类,用于将聊天记录显示在 RecyclerView 中。
3. 在 Activity 中,将 RecyclerView 和 Adapter 进行绑定,并设置布局管理器。
4. 在发送按钮的点击事件中,将输入的聊天内容添加到 Adapter 中,并更新 RecyclerView。
以下是示例代码:
1. 布局文件:
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/sendButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送"/>
</LinearLayout>
```
2. Adapter 类:
```
public class ChatAdapter extends RecyclerView.Adapter<ChatAdapter.ViewHolder> {
private List<String> chatList;
public ChatAdapter(List<String> chatList) {
this.chatList = chatList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_chat, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.chatTextView.setText(chatList.get(position));
}
@Override
public int getItemCount() {
return chatList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
TextView chatTextView;
ViewHolder(@NonNull View itemView) {
super(itemView);
chatTextView = itemView.findViewById(R.id.chatTextView);
}
}
}
```
3. Activity 类:
```
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private EditText editText;
private ChatAdapter chatAdapter;
private List<String> chatList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
editText = findViewById(R.id.editText);
chatAdapter = new ChatAdapter(chatList);
recyclerView.setAdapter(chatAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
Button sendButton = findViewById(R.id.sendButton);
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String chatContent = editText.getText().toString();
chatList.add(chatContent);
chatAdapter.notifyItemInserted(chatList.size() - 1);
recyclerView.scrollToPosition(chatList.size() - 1);
editText.setText("");
}
});
}
}
```
希望能对你有所帮助!