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吗。