Android 以编程方式设置布局参数recyclerview';s项目

Android 以编程方式设置布局参数recyclerview';s项目,android,android-relativelayout,Android,Android Relativelayout,我使用的是RecyclerView,其中我有一个RelativeLayout。在该相对视图中,我有一个2文本视图。如果第一个TextView具有某个值,该值决定第二个TextView应向右还是向左对齐 我已使用以下代码在RecyclerView适配器中设置了LayoutParams: if (listItem.getmLikeCount() > 0) { RelativeLayout.LayoutParams feedCommentParams = new RelativeLayo

我使用的是
RecyclerView
,其中我有一个
RelativeLayout
。在该
相对视图中,我有一个2
文本视图
。如果第一个
TextView
具有某个值,该值决定第二个
TextView
应向右还是向左对齐

我已使用以下代码在
RecyclerView
适配器中设置了
LayoutParams

if (listItem.getmLikeCount() > 0) {
    RelativeLayout.LayoutParams feedCommentParams = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    feedCommentParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
    listItemHolder.mCommentCount.setLayoutParams(feedCommentParams);
} else {
    listItemHolder.mLikeCount.setVisibility(View.GONE);
    RelativeLayout.LayoutParams feedCommentParams = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    feedCommentParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 0);
    listItemHolder.mCommentCount.setLayoutParams(feedCommentParams);
}
但是这些项目正在被回收,即如果任何
RecyclerView
项目没有任何
count
,则所有其他项目也将向左对齐


如果像
count>0
那样,我想向右显示注释计数,否则向左显示注释计数

使用两个
TextView
单独对齐可以轻松解决此问题。因此,基于注释计数,您可以将它们的可见性设置为
GONE
VISIBLE

无论如何,在这种情况下,您可能会考虑调用“代码>请求程序布局< /代码>”。p>

if (listItem.getmLikeCount() > 0) {
    RelativeLayout.LayoutParams feedCommentParams = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    feedCommentParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
    listItemHolder.mCommentCount.setLayoutParams(feedCommentParams);

    // Call requestLayout here 

} else {
    listItemHolder.mLikeCount.setVisibility(View.GONE);
    RelativeLayout.LayoutParams feedCommentParams = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    feedCommentParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 0);
    listItemHolder.mCommentCount.setLayoutParams(feedCommentParams);

    // Call requestLayout here for the else part. 

}

如果需求很小,那么为什么要在代码中使用android:layout\u alignWithParentIfMissing=“true”在xml中,它将仅从xml管理,或者是懒惰的,只需创建两个不同的“文本视图”并单独对齐。感谢您的回答,您能告诉我,对于上述代码中的else部分,我应该在这里写什么来代替//Call requestLayout吗。