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

时间:2017-03-08 03:05:02

标签: java android android-layout android-widget

我一直在谷歌搜索这个答案。我一直在尝试将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的右边对齐,同时保持宽度等于其中文本的大小。

任何人都可以帮忙???

1 个答案:

答案 0 :(得分:0)

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);

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