我在android Studio中开发和应用程序,现在我遇到了一个奇怪的问题。
我的TextView
内容为Button
和button
。
我以编程方式构建它们,我希望tableRow
内的button.setGravity(Gravity.RIGHT)
与屏幕右侧对齐。
我已经尝试了很多选项,例如:
button.setGravity(Gravity.END)
和fill_parent
并试图在layout_width
中使用TableRow
向表格提供布局参数,但似乎无法正常工作
这是构建 TableRow new_tablerow = new TableRow(getContext());
layout_pickup_passengers.addView(new_tablerow);
LinearLayout.LayoutParams rowParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
new_tablerow.setLayoutParams(rowParams);
//GLOBAL PASSENGERS
TextView text_pass_type = new TextView(getContext());
new_tablerow.addView(text_pass_type);
text_pass_type.setTextColor(getResources().getColor(R.color.black));
text_pass_type.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22);
text_pass_type.setText("> Passageiros");
//BUTTON
// Button
final Button button_numberPickerDialog = new Button(getContext());
button_numberPickerDialog.setBackgroundResource(R.color.wallet_bright_foreground_holo_dark);
new_tablerow.addView(button_numberPickerDialog);
button_numberPickerDialog.setGravity(Gravity.RIGHT);
的代码部分:
\b(?:ABC|DEF)\b
这就是我得到的:
所以你可以看到只有右边的文本对齐(0号),我希望按钮与右边的对齐而不是内部的文本。
答案 0 :(得分:0)
方法" setGravity(int)
"你在这里提到的不能像你想象的那样工作,因为方法的工作与属性" andriod:gravity
"相同。在xml中,它不会影响您明确定义的按钮。
实际上,我想知道为什么你坚持以编程方式构建它们。我想如果你用xml构建它们,请使用" android : layout_gravity
"可以工作。
我尝试使用RaletiveLayout
来完成这项工作的代码:
//TableRow new_tablerow = new TableRow(getBaseContext());
//layout_pickup_passengers.addView(new_tablerow);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout relativeLayout = new RelativeLayout(this);
layout_pickup_passengers.addView(relativeLayout,params);
//GLOBAL PASSENGERS
TextView text_pass_type = new TextView(getBaseContext());
RelativeLayout.LayoutParams lp_text = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT
);
lp_text.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
text_pass_type.setTextColor(getResources().getColor(R.color.colorPrimary));
text_pass_type.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22);
text_pass_type.setText("> Passageiros");
relativeLayout.addView(text_pass_type,lp_text);
//BUTTON
// Button
final Button button_numberPickerDialog = new Button(getBaseContext());
button_numberPickerDialog.setBackgroundResource(R.color.colorPrimaryDark);
RelativeLayout.LayoutParams lp_button = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT
);
lp_button.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
relativeLayout.addView(button_numberPickerDialog,lp_button);
也许我对你的代码做了一些改变。 它可以牺牲你吗? enter image description here