android - 如何以编程方式向微调器添加边距?
问题描述
我想以编程方式创建一个margin = Xdp的微调器,然后将其添加到LinearLayout。我认为这可以使用 LayoutParams 来实现,但我没有运气。
val spinnerLanguage = Spinner(context).apply {
val value = Cals.dpToPx(context, 15)
this.setPadding(value, value, value, value)
this.adapter = SpinnerBaseChoiceSelectionAdapter(context, R.layout.simple_spinner_item, data)
val params = ViewGroup.MarginLayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
)
params.setMargins(0, value, 0, value)
this.rootView.layoutParams = params
}
spinnerHolderLayout.addView(spinnerLanguage)
spinnerHolderLayout.addView(spinnerLanguage)
spinnerHolderLayout.addView(spinnerLanguage)
结果在它们之间没有边距
解决方案
使用LayoutParams
.
例如:
LayoutParams lp = (RelativeLayout.LayoutParams) spinnerLanguage.getLayoutParams();
// Set spinner margin (Left Top Right Bottom)
lp.setMargins(25,25,25,25);
// Update parameters to spinner
spinnerLanguage.setLayoutParams(lp);
推荐阅读
- python - PyQt5 QML 应用程序在导入 QtQuick.Controls 2 时崩溃
- java - 你如何为数组编写一个高级的 mutator 方法?
- mysql - 如何在不在表达式中设置用户变量的情况下重写此查询已弃用警告
- php - 在每次循环执行后添加时间停止
- tomcat - Tomcat 虚拟主机不响应 HTTPS
- python - 如何在python中随机删除数据集中特定列中的观察值
- javascript - 将两个数组与对象权益进行比较
- javascript - 包裹JS。使用 --public-url 选项
- python - python:在异步中使用等待并在浏览器中运行
- node.js - Node JS/Express:检查登录是否成功