如何在 kotlin 的自定义布局中更改 layout_marginTop?
How to change layout_marginTop inside a custom Layout in kotlin?
我是 android 的初学者,我迷路了。
我需要动态更改“layout_marginTop”的值。
我需要访问的布局是这样的:
<com.rail.title.TitleRailLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/titleRailLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:paddingLeft="@dimen/title_rails_padding_left"
android:paddingRight="@dimen/title_rails_padding_right"
android:layout_marginTop="32dp">
</com.rail.title.TitleRail>
class TitleRailLayout:
class TitleRailLayout @JvmOverloads constructor(
context: Context,
attributeSet: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attributeSet, defStyleAttr), EndlessRecyclerView.PaginationCallback {
...
在你看到的地方 layout_marginTop 我需要输入另一个值“如果”发生某些事情。
有人知道怎么做吗?
在您的 TitleRailLayout
中,您可以使用类似的东西:
fun updateMargin(topMargin: Int){
if (....) {
val params: ViewGroup.MarginLayoutParams = this.layoutParams as ViewGroup.MarginLayoutParams
params.topMargin = topMargin; //This value is in px
layoutParams = params
requestLayout()
}
}
我是 android 的初学者,我迷路了。
我需要动态更改“layout_marginTop”的值。
我需要访问的布局是这样的:
<com.rail.title.TitleRailLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/titleRailLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:paddingLeft="@dimen/title_rails_padding_left"
android:paddingRight="@dimen/title_rails_padding_right"
android:layout_marginTop="32dp">
</com.rail.title.TitleRail>
class TitleRailLayout:
class TitleRailLayout @JvmOverloads constructor(
context: Context,
attributeSet: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attributeSet, defStyleAttr), EndlessRecyclerView.PaginationCallback {
...
在你看到的地方 layout_marginTop 我需要输入另一个值“如果”发生某些事情。
有人知道怎么做吗?
在您的 TitleRailLayout
中,您可以使用类似的东西:
fun updateMargin(topMargin: Int){
if (....) {
val params: ViewGroup.MarginLayoutParams = this.layoutParams as ViewGroup.MarginLayoutParams
params.topMargin = topMargin; //This value is in px
layoutParams = params
requestLayout()
}
}