我在这里尝试将回收器 View 中某些元素的布局重力设置为右侧,因此我在回收器 View 适配器中执行了此操作
@Override
public void onBindViewHolder(@NonNull MessagesViewHolder holder, int position) {
Message message = messagesList.get(position);
if (message.getSenderId().equals(auth.getCurrentUser().getUid()))
{
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
holder.messageCv.setLayoutParams(params);
holder.messageCv.setCardBackgroundColor(context.getResources().getColor(R.color.green));
holder.senderTv.setTextColor(context.getResources().getColor(R.color.white));
holder.messageCntnt.setTextColor(context.getResources().getColor(R.color.white));
}
holder.senderTv.setText(message.getSender());
holder.messageCntnt.setText(message.getMessage());
}
但是没有成功
最佳答案
为什么使用RelateiveLayout.LayoutParams
?
通过文档:
CardView 扩展了 FrameLayout
https://developer.android.com/reference/androidx/cardview/widget/CardView
所以你应该使用FrameLayout.LayoutParams
它有重力
场。
我相信你可以使用这个。
https://developer.android.com/reference/android/widget/FrameLayout.LayoutParams#gravity
但这并不是以编程方式设置它的最佳方法,最好将属性添加到布局 xml 中。
关于java - 如何以编程方式在 RecyclerView 中设置 cardView 重力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72310964/