如何以编程方式更改EditText对象的宽度?

时间:2018-05-09 10:23:50

标签: java android

我希望以编程方式更改EditText对象的宽度,而不用之前使用xml创建视图。

public class TableFragment extends Fragment{

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState){
    View view = inflater.inflate(R.layout.fragment_table, container, false);

    DisplayMetrics displayMetrics = new DisplayMetrics();
    getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    int dHeight = displayMetrics.heightPixels;
    int dWidth = displayMetrics.widthPixels;

    TableLayout tableLayout = view.findViewById(R.id.tableLayout);
    EditText editTextSpieler1 = new EditText(getActivity());
    LayoutParams layoutparams = new LayoutParams(
            dWidth/4,
            WRAP_CONTENT);
    editTextSpieler1.setHint("Name");
    editTextSpieler1.setLayoutParams(layoutparams);
    tableLayout.addView(editTextSpieler1);

    return view;
}}

使用xml创建EditText视图并使用findViewById设置创建对象时,宽度可以正常工作。 然而,当我使用上面显示的代码启动应用程序时,EditText对象的宽度是显示宽度的100%。(而不是25%)

提前致谢。

解决方案:

tableLayout.addView(editTextSpieler1);
editTextSpieler1.getLayoutParams().width=((int)dWidth/4);

在添加视图之后对视图的宽度进行处理。

2 个答案:

答案 0 :(得分:0)

您可以使用

editTextSpieler1.getLayoutParams().width=((int)dWidth/4);

editTextSpieler1.getLayoutParams().width=200;

答案 1 :(得分:0)

请尝试以下操作:

int width = 100;
int height = 50;
LayoutParams params = new LayoutParams(width, height);
EditText mEditText = new EditText(this);
mEditText.setLayoutParams(params);