将 TextView 设置为 LinearLayout 的右侧(垂直)

Posted

技术标签:

【中文标题】将 TextView 设置为 LinearLayout 的右侧(垂直)【英文标题】:Set TextView To Right Of LinearLayout(Vertical) 【发布时间】:2017-07-28 11:34:24 【问题描述】:

我一直在谷歌上搜索这个答案。我一直在尝试将 TextView 设置为与垂直 LinearLayout 的右侧对齐。但是,设置参数并使用它...

params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

不起作用。我几乎可以肯定这是因为我已将宽度设置为 WRAP_CONTENT。

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

问题是,如果我将宽度设置为 MATCH_PARENT,那么(如预期的那样)TextView 的背景颜色会填满屏幕的整个宽度。我不想将文本的重心设置在右侧。我试图让整个 TextView 与 LinearLayout 的右侧对齐,同时保持宽度等于其中文本的大小。

谁能帮忙???

【问题讨论】:

垂直线性布局在哪里。 ? 请显示创建布局的 XML 或 Java 代码。 【参考方案1】:

RelativeLayout.ALIGN_PARENT_RIGHT 不起作用,因为它是 RelativeLayout 的规则,而不是 LinearLayout 的规则

假设您的 LinearLayout 设置为 match_parent,那么您应该应用重力。只需将以下内容添加到 TextView

android:layout_gravity="end"

在 TextView 上调整布局参数的等效程序:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
params.gravity = Gravity.END; //despite the confusing name, this is on Layout params and this is layout_gravity
params.weight = 1.0f;
textView.setLayoutParams(params);

注意:布局重力和视图重力是不同的 - 布局重力设置视图在其布局中的位置,而重力设置视图内内容的重力

【讨论】:

太好了,很高兴它有帮助。非常感谢您,但是,由于您是新用户,因此我只想说,当您想感谢 SO 上的某个人时,您打算通过投票和/或接受他们的回答来表明这一点 试图投票,但由于我的声誉我不能,但只是注意到我可以接受你说的答案!非常感谢!

以上是关于将 TextView 设置为 LinearLayout 的右侧(垂直)的主要内容,如果未能解决你的问题,请参考以下文章

将 textView 高度设置为等于 contentSize swift

如何将 TextView 中的文本设置为两行?

将 TextView 设置为 LinearLayout 的右侧(垂直)

如何将 BackgroundWorker 的结果设置为 TextView

Android - ArrayAdapter:将 TextView 设置为 SQLiteDatabase 中的值

Android:将文本样式设置为 TextView 文本的一部分