以编程方式获取约束的ID

时间:2018-11-16 19:07:26

标签: android android-studio imageview constraints

给出以下xml:

<ImageView
    android:id="@+id/someTag"
    android:layout_width="10dp"
    android:layout_height="10dp"
    android:layout_marginBottom="12dp"
    android:layout_marginStart="8dp"
    android:tag="someTag"
    app:layout_constraintBottom_toTopOf="@+id/someID"
    app:layout_constraintStart_toEndOf="@+id/someID"

我想知道如何获取

的ID
app:layout_constraintBottom_toTopOf

(即“ someID”)以编程方式进行。

非常感谢!

1 个答案:

答案 0 :(得分:4)

在此情况下,该属性值保存在ImageView的{​​{1}}中,具体是ConstraintLayout.LayoutParams,因为其父级是LayoutParams

ConstraintLayout具有bottomToTop字段,其中包含该特定约束的ConstraintLayout.LayoutParams的ID。

只需获取View的{​​{1}},将其转换为ImageView,然后从上述字段中获取您的ID。例如:

LayoutParams

如果由于某种原因需要该ID的实际资源名称,则可以按常规使用ConstraintLayout.LayoutParams方法获得它。那就是:

ImageView image = findViewById(R.id.someTag);
ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams) image.getLayoutParams();
int bottomToTopId = lp.bottomToTop;