0
我想使用RecyclerView来显示联系人的水平列表。我花了好几个小时才发现我的错误,我真的不明白为什么这会继续发生。我的应用程序是类似Tinder的。Android RecyclerView没有显示正确的xml
我行项目:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dp"
android:layout_height="80dp"
xmlns:tool="http://schemas.android.com/tools"
android:background="@color/white"
android:layout_margin="8dp">
<TextView
android:id="@+id/tv_conversation_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_alignParentBottom="true"
android:textAlignment="center"
android:textColor="@color/black"
android:textSize="4pt"
tool:text="Name Name"/>
<ImageView
android:id="@+id/iv_conversation_avatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:layout_margin="2dp"
android:src="@drawable/photo1"
android:layout_above="@id/tv_conversation_name"/>
</RelativeLayout>
I did a layout like this one in a other fragment
我的适配器:
public class ConversationAdapter extends RecyclerView.Adapter<ConversationAdapter.ConversationViewHolder>{
private List<Conversation> conversationList = new ArrayList<>();
public class ConversationViewHolder extends RecyclerView.ViewHolder {
public TextView title;
public ImageView avatar;
ConversationViewHolder(View view) {
super(view);
title = (TextView) view.findViewById(R.id.tv_conversation_name);
avatar = (ImageView) view.findViewById(R.id.iv_conversation_avatar);
}
}
public ConversationAdapter(List<Conversation> conversationList) {
this.conversationList = conversationList;
}
@Override
public ConversationViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_conversation, parent, false);
return new ConversationViewHolder(itemView);
}
@Override
public void onBindViewHolder(ConversationViewHolder holder, int position) {
Conversation conversation = conversationList.get(position);
holder.title.setText(conversation.getName());
byte[] decodedByteArray = android.util.Base64.decode(conversation.getImage(), Base64.DEFAULT);
holder.avatar.setImageBitmap(BitmapFactory.decodeByteArray(decodedByteArray, 0, decodedByteArray.length));
}
@Override
public int getItemCount() {
return conversationList.size();
}
}
我如何配置我的RecyclerView:
conversationAdapter = new ConversationAdapter(conversationList);
RecyclerView.LayoutManager mLayoutManagerHorizontal = new LinearLayoutManager(getActivity().getApplicationContext(),LinearLayoutManager.HORIZONTAL, false);
rvConversation.setLayoutManager(mLayoutManagerHorizontal);
rvConversation.setItemAnimator(new DefaultItemAnimator());
rvConversation.setAdapter(conversationAdapter);
非常感谢杰森!这解决了我的问题:) –