Android LinearLayout中的TextView参数无法以编程方式工作
我想在我的Android程序中以编程方式为2 TextView设置参数,但我有一个问题。这是一段有趣的代码:Android LinearLayout中的TextView参数无法以编程方式工作,android,android-linearlayout,Android,Android Linearlayout,我想在我的Android程序中以编程方式为2 TextView设置参数,但我有一个问题。这是一段有趣的代码: private void setChatItemStyle(Boolean mineMsg, ChatViewHolder holder) { if(mineMsg) { holder.params.gravity = Gravity.END; holder.autore.setTextColor(Color.BLUE);
private void setChatItemStyle(Boolean mineMsg, ChatViewHolder holder) {
if(mineMsg) {
holder.params.gravity = Gravity.END;
holder.autore.setTextColor(Color.BLUE);
}else{
holder.params.gravity = Gravity.START;
holder.autore.setTextColor(Color.MAGENTA);
}
holder.autore.setLayoutParams(holder.params);
holder.messaggio.setLayoutParams(holder.params);
}
现在问题是,;文本的颜色已设置,但重力未设置。
我怎样才能修好它
TextView CIOSCO及其各自的文本应显示在活动的右侧,而不是在活动左侧的文本下方
这是我的ChatViewHolder:
public class ChatViewHolder extends RecyclerView.ViewHolder {
TextView autore, messaggio;
LinearLayout.LayoutParams params;
public ChatViewHolder(View itemView) {
super(itemView);
autore = itemView.findViewById(R.id.tv_autore);
messaggio = itemView.findViewById(R.id.tv_messaggio);
params = (LinearLayout.LayoutParams) autore.getLayoutParams();
}
}
只有消息会显示在右侧,但仍然不会显示在屏幕右侧
XML文件:
当我们没有
TextView
的布局时,很难回答,因为它应该在您的聊天视图持有者中
关于重力,我能说的是,重力有两种类型
LayoutParams
中的重力等于xml中的layout\u重力(文本视图的布局)
)
视图中的重力
等于xml中的重力
(在您的案例中,此视图中的子视图布局为文本视图中的文本
)
就你而言:
private void setChatItemStyle(Boolean mineMsg, ChatViewHolder holder) {
int gravity = Gravity.START;
if (mineMsg) {
gravity = Gravity.END;
holder.autore.setTextColor(Color.BLUE);
} else {
holder.autore.setTextColor(Color.MAGENTA);
}
holder.autore.setGravity(gravity);
holder.messaggio.setGravity(gravity);
}
如果您的TextView
宽度为WRAP\u内容
,则该功能将起作用
如果您的TextView
宽度与父项的MATCH\u宽度相同,则可以使用
在您的情况下,有一种方法可以做到这一点:
private void setChatItemStyle(Boolean mineMsg, ChatViewHolder holder) {
int gravity = Gravity.START;
if (mineMsg) {
gravity = Gravity.END;
holder.autore.setTextColor(Color.BLUE);
} else {
holder.autore.setTextColor(Color.MAGENTA);
}
holder.autore.setGravity(gravity);
holder.messaggio.setGravity(gravity);
}
在xml文件中将TextViews
设置为match\u parent
我和kotlin一起工作,所以语法可能是错误的?抱歉,如果我遗漏了任何内容,您可以看到图片…您的问题中添加ChatViewHolder+xml文件的可能重复项确定,我将用代码编辑您的帖子,并将您的xml发送给我1。更改文本视图以匹配宽度为2的父对象。将重力设置为autore,消息如:holder.autore.setGravity()等…我的线性布局(垂直)需要在宽度上与父项匹配?是的,我错过了!线性布局匹配\u父对象