java - 如何以编程方式更改 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);
添加后更改视图的宽度。
解决方案
您可以使用
editTextSpieler1.getLayoutParams().width=((int)dWidth/4);
或者
editTextSpieler1.getLayoutParams().width=200;
推荐阅读
- django - DRF 模型序列化器外键返回对象,而不是 ID
- php - 使用 PHP 和 Mysql 将空字符串更改为 Null 或“None”ssp 类
- docker - 如何在 Heroku 上创建/迁移 Elixir Phoenix Docker 镜像?
- c# - 二进制搜索字符串数组未找到搜索的字符串C#
- numpy - 广播相同形状的多维数组索引
- java - 给用户输入以将特定的 int 或 char 放在数组中的某个位置?
- git - 是否可以在 git diff 命令之前应用代码格式
- javascript - 将文本标签添加到 D3 中的每个堆叠条堆栈
- javascript - JavaScript - 设置元素的值不起作用
- excel - 根据单元格值选择工作表