问题1:
虽然我在ConstraintLayout中使用guideline
,但它根本不起作用,下面的代码无法设置orientation
guideline
(为什么没有这样的属性?) ,这是无用的:
constraintLayout {
guideline {
//here, cannot set the orientation of guideline
}
//...
}
即使下面的代码可以设置指南方向,但它仍然存在与布局相同的问题(我不知道指南是否已创建):
constraintLayout {
constraintSet {
create(ID_GUIDELINE, VERTICAL_GUIDELINE)
}
//...
}
那么,在Anko的ConstraintLayout布局中使用GuideLines的正确方法是什么?
问题2:
使用Fragment
时,另一个ConstraintLayout中的ConstraintLayou可能会出现意外行为。
我在Activity
中使用ConstraintLayout(以 A 命名),在Fragment
中使用ConstraintLayout( B ),然后添加或替换 B 进入 A ,结果显示 B 的宽度始终不正确。
但是,如果 B 中有RecyclerView
,并将 B 的layoutParams
设置如下:
layoutParams = ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT)
然后它正常工作,没有RecyclerView
但只有其他小部件,如buttons/textviews/imageviews
,它表明 B 的宽度非常窄。
当然我可以将 A 的布局更改为FrameLayout
,但这不是我想要的,为什么以及如何做到这一点?谢谢你的回复!
另外,我在Anko kotlin库中打开了这个问题:https://github.com/Kotlin/anko/issues/579和代码:
// A in Activity
constraintLayout {
fitsSystemWindows = true
id = A
}
supportFragmentManager.beginTransaction().replace(A, fragmentB).commit()
//supportFragmentManager.beginTransaction().add(A, fragmentB).commit()
// B in Fragment
constraintLayout {
fitsSystemWindows = true
layoutParams = ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT)
}
答案 0 :(得分:0)
问题1尝试这样的事情:
guideline {
id = ID_GUIDELINE
}.lparams(0, 0) {
orientation = ConstraintLayout.LayoutParams.VERTICAL
guideBegin = dip(80)
}
问题2应该在一个标题很好的单独帖子中,以便更有可能得到回答,并且更容易被其他人搜索。