Java 创建子视图时是否可以通知父视图
在android中,用户界面可以动态创建,那么有没有办法知道是否为父用户创建了子用户界面Java 创建子视图时是否可以通知父视图,java,android,Java,Android,在android中,用户界面可以动态创建,那么有没有办法知道是否为父用户创建了子用户界面 例如,如果我有一个线性布局作为父级,并且我动态创建了一个子按钮。有没有人去通知家长 这很简单-如果您有LinearLayout名称linearLayout1,那么向其添加child的唯一原因是 通过调用linearLayout.addView(查看子对象)方法。 因此,您确切地知道子对象添加的时间:只能在调用以下方法之后添加:) 例如: 这很简单-如果您有LinearLayout名称linearLayout
例如,如果我有一个线性布局作为父级,并且我动态创建了一个子按钮。有没有人去通知家长 这很简单-如果您有LinearLayout名称linearLayout1,那么向其添加child的唯一原因是 通过调用linearLayout.addView(查看子对象)方法。 因此,您确切地知道子对象添加的时间:只能在调用以下方法之后添加:) 例如:
这很简单-如果您有LinearLayout名称linearLayout1,那么向其添加child的唯一原因是 通过调用linearLayout.addView(查看子对象)方法。 因此,您确切地知道子对象添加的时间:只能在调用以下方法之后添加:) 例如:
Tal Kanel的版本可以工作,但为了避免重复代码,我建议使用HierarchyChangeListener:
LinearLayout ll = (LinearLayout)findViewById(R.id.mylinearlayout);
ll.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
public void onChildViewAdded(View parent, View child) {
//handle the logic for an added child here
}
public void onChildViewRemoved(View parent, View child) {
//optionally, handle logic for a removed child
}
});
Tal Kanel的版本可以工作,但为了避免重复代码,我建议使用HierarchyChangeListener:
LinearLayout ll = (LinearLayout)findViewById(R.id.mylinearlayout);
ll.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
public void onChildViewAdded(View parent, View child) {
//handle the logic for an added child here
}
public void onChildViewRemoved(View parent, View child) {
//optionally, handle logic for a removed child
}
});
你的问题不是很清楚,你到底想做什么?为什么你想通知一个线性布局添加了一个孩子?你的问题不是很清楚,你到底想做什么?为什么你想通知一个线性布局添加了一个孩子?在我看来,你的答案比我的答案好,但这并不是因为重复代码问题:通过使用onHierarchyChangeListener,您可以真正确保孩子添加了seccesfully。在我看来,您的答案似乎比我的答案更好,但不是因为重复代码问题:通过使用onHierarchyChangeListener,您可以真正确保孩子添加了seccesfully。