我一直在谷歌搜索这个答案。我一直在尝试将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的右边对齐,同时保持宽度等于其中文本的大小。
任何人都可以帮忙???
答案 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);
注意:布局重力和视图重力是不同的东西 - 布局重力设置视图在其布局中的位置,而重力设置视图中内容的重力