Android Studio:表格行中的按钮对齐方式

时间:2017-04-18 15:18:08

标签: java android-studio button

我在android Studio中开发和应用程序,现在我遇到了一个奇怪的问题。

我的TextView内容为Buttonbutton

我以编程方式构建它们,我希望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

这就是我得到的:

enter image description here

所以你可以看到只有右边的文本对齐(0号),我希望按钮与右边的对齐而不是内部的文本。

1 个答案:

答案 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