gpt4 book ai didi

Android 从 FrameLayout 获取 child

转载 作者:行者123 更新时间:2023-11-29 18:35:44 25 4
gpt4 key购买 nike

如果我创建两个类,一个扩展 FrameLayout 的父类和一个扩展 View 的子类,然后使用 XML 来初始化它们。是否可以从 Parent 类构造函数中获取子元素?如果我使用 getChildAt() ,我总是得到 null,因为 Activity 仍未创建。

 <com.example.Parent 
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_centerInParent="true">

<com.example.Child
android:layout_width="match_parent"
android:layout_height="match_parent" />

<com.example.Child
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.example.Parent>

父子类

public class Parent extends FrameLayout { 
public Parent(@NonNull Context context) {
super(context);
this.getChildAt(0); // return null
}
...
}

public class Child extends View {
...
}

最佳答案

由于您在构建 FrameLayout 时调用了 getChildAt,因此您得到的是空值(您的 child 仍未完全附加到 View )。一种解决方案是覆盖 onLayout()onMeasure() 以获得您的 child 。

关于Android 从 FrameLayout 获取 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54454889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com