class BundleItemView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr) {
init {
View.inflate(context, R.layout.item_product, this)
}
fun setProduct(product: Product) {
/* change margin to 0 for this constraint layout */
item_store_product_layout.leftPadding = dip(0)
product_image.setImageURI(ImageUtil.getCellImageWithFallback(product))
product_name.text = product.completeTitle
product_sub_name_1.text = product.prettySizeString
product_add_button.text = context.getString(R.string.view_details)
product_regular_price_label.visibility = View.GONE
product_regular_price_value.visibility = View.GONE
product_price.setPrice(product.originalPrice)
product_add_button.onClick {
Toast.makeText(context, product.completeTitle, Toast.LENGTH_SHORT).show()
}
}
}
item_store_product_layout.leftPadding = dip(0)
知道如何以编程方式改变约束布局的边距吗?
谢谢
边距与视图相关联,但属于ViewGroup,在您的情况下是ConstraintLayout。在ConstraintLayout.LayoutParams中更改边距
// view is the view to change margins for
val lp = view.layoutParams as ConstraintLayout.LayoutParams
lp.leftMargin = 200 // change to 200px
lp.topMargin = 200
lp.rightMargin = 200
lp.bottomMargin = 200
view.requestLayout() // May or may not be needed depending upon where the code is placed.
如果要更改连接,也可以使用ConstraintSet在ConstraintLayout中设置边距。
val cs = ConstraintSet()
cs.clone(layout) // layout is the ConstraintLayout
cs.connect(
R.id.textView,
ConstraintSet.START,
ConstraintSet.PARENT_ID,
ConstraintSet.START,
200 // Start margins is now 200px
)
cs.applyTo(layout)
您正在将一些小部件的可见性设置为view.Gone
,因此您可以使用Gone边距。
我在一个框架布局中有两个线性布局。 这里,我将id为的线性布局的设置为10dp,但在代码中,我想将这个10dp更改为50dp,在某些条件下,如何以编程方式更改这个top margine?
我在通用应用程序的底部显示一个视图,并在视图中动态添加该视图。我希望每次都能像iAd一样在底部显示这个视图。在两个方向上。如何为此添加约束。请建议。 谢谢
问题内容: 我正在尝试制作一个视图,该视图将作为一种“面板”,附加到视图控制器的右侧。 也就是说,它绑定到父视图控制器的尾部,顶部和底部边距,静态宽度为300 但是,我似乎无法正确解决问题,我要么打破约束,要么做某件事xcode告诉我是非法的。 我究竟做错了什么? 这是控制器中的代码 问题答案: 其实在你的代码的问题是,你没有设置的到,只要你想使用自动布局限制,那么你必须设置一个以虚假的。另一个问
问题内容: 我正在尝试使用Java(不是XML)来创建一个LinearLayout,其线性按钮具有填满整个屏幕并具有边距的功能。这是不带边距的代码: 这样就可以了,但是到底如何给按钮留出一定的边距,以便在它们之间留出空间?我尝试使用,但是没有weight成员,所以不好。如果你lp在其构造函数中传递它,它也不起作用。 这不可能吗?因为它看起来确实可靠,而且它不是你只能使用XML进行的第一个Andro
问题内容: 我想为对象设置动画,所以我声明一个约束并将其添加到视图中。然后,我在动画中更新约束的属性。为什么这段代码不移动对象? 问题答案: 为了声明动画,您不能重新定义约束并调用。您应该更改约束的,并遵循以下格式:
问题内容: 我有一个,我使用Xcode Interface Builder设置了约束。 现在,我需要以编程方式更新该高度常数。 有一个类似的功能,但我不知道如何使用它。 问题答案: 从“界面”构建器中选择高度约束,然后选择其高度。因此,当您想更改视图的高度时,可以使用以下代码。 方法是的实例方法。以编程方式设置约束时,这将很有帮助。它更新视图的约束。有关更多详细信息,请单击此处。