java - 如何以编程方式在 RecyclerView 中设置 cardView 重力

标签 java android android-recyclerview gravity cardview

我在这里尝试将回收器 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());

}

但是没有成功

回收器 View 看起来像这样 enter image description here

最佳答案

为什么使用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/

相关文章:

java - 在没有Webview的情况下从自己的表单登录站点

java - 将字符串转换为特定格式的日期时间对象(例如不带日期)

android - 无法在 AVD Manager 中更改目标 API

RecyclerView 和 CardView 的 java.lang.NullPointerException

java - "echo %JAVA_HOME%"即使设置了系统 JAVA_HOME 环境变量也返回错误的路径

android - SQLite:在 Windows 上为 "database disk image is malformed"但在 Android 上正常

android - 在 Android 中添加提醒

android - RecyclerView 具有不同高度的项目 : Scrollbar

android - Recycler View 中的 swapadapter 方法和 notifydatasetchanged 方法有什么区别?

java - 以编程方式使用下面的java代码创建一个appender,我需要使用我的partternLayout添加MDC