首页 > 解决方案 > 如何以编程方式更改 EditText 对象的宽度?

问题描述

我想以编程方式更改 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);

添加后更改视图的宽度。

标签: javaandroid

解决方案


您可以使用

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

或者

editTextSpieler1.getLayoutParams().width=200;

推荐阅读