我希望以编程方式更改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);
在添加视图之后对视图的宽度进行处理。
答案 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);