【发布时间】:2018-05-09 10:23:49
【问题描述】:
我想以编程方式更改 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);
在添加视图后更改视图的宽度。
【问题讨论】:
-
不,这就是我尝试过的,如上所示