如何以编程方式设置底部边距?
How to set a bottom margin programmatically?
我有一个 LinearLayout
已经包含多个元素。我想以编程方式添加底部边距。
我在适配器代码中添加了以下片段。
两者都不行。
View linearLayout = convertView.findViewById(R.id.spinnerL);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)linearLayout.getLayoutParams();
params.setMargins(0, 0, 0, 10);
linearLayout.setLayoutParams(params);
这个甚至删除了我的元素:
View linearLayout = convertView.findViewById(R.id.spinnerL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(30, 20, 30, 10);
linearLayout.setLayoutParams(layoutParams);
我做错了什么?如何在运行时添加边距?
在你的第一个方法中,你基本上说:
params is a variable that will call linearLayout.getLayoutParams();
然后在下一行中,您调用它并设置边距,但随后将布局参数设置为 params,这与边距设置不同。尝试做类似的东西:
View linearLayout = convertView.findViewById(R.id.spinnerL);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)linearLayout.getLayoutParams();
params.setMargins(0, 0, 0, 10);
linearLayout.setLayoutParams(params);
linearLayout.requestLayout();
如果我错了,请原谅,我才刚刚开始Java。但这就是我从你的第一种方法中了解到的。如果我错了,请有人告诉我错在哪里,因为我有兴趣看到我的错误:)
我有一个 LinearLayout
已经包含多个元素。我想以编程方式添加底部边距。
我在适配器代码中添加了以下片段。
两者都不行。
View linearLayout = convertView.findViewById(R.id.spinnerL);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)linearLayout.getLayoutParams();
params.setMargins(0, 0, 0, 10);
linearLayout.setLayoutParams(params);
这个甚至删除了我的元素:
View linearLayout = convertView.findViewById(R.id.spinnerL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(30, 20, 30, 10);
linearLayout.setLayoutParams(layoutParams);
我做错了什么?如何在运行时添加边距?
在你的第一个方法中,你基本上说:
params is a variable that will call linearLayout.getLayoutParams();
然后在下一行中,您调用它并设置边距,但随后将布局参数设置为 params,这与边距设置不同。尝试做类似的东西:
View linearLayout = convertView.findViewById(R.id.spinnerL);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)linearLayout.getLayoutParams();
params.setMargins(0, 0, 0, 10);
linearLayout.setLayoutParams(params);
linearLayout.requestLayout();
如果我错了,请原谅,我才刚刚开始Java。但这就是我从你的第一种方法中了解到的。如果我错了,请有人告诉我错在哪里,因为我有兴趣看到我的错误:)