当我建立一个View
在Android中动态地我必须将它添加到“父级”ViewGroup
通过致电
myLinearLayout.addView(myView);
我知道我可以监督ViewGroup
任何孩子都可以通过优秀的方式添加onHierarchyChangeListener http://developer.android.com/reference/android/view/ViewGroup.OnHierarchyChangeListener.html,但就我而言,我需要反馈View
本身。因此我的问题是:
有没有类似的东西View.onAddedToParent()
回调或我可以构建的监听器?
为了让事情变得非常清楚:我希望视图自己处理所有事情,我知道我可以在“父级”中捕获事件,然后通知视图有关事情的信息,但这是not想要的在这里。我只能改变观点
编辑:我刚刚发现onAttachStateChangeListener http://developer.android.com/reference/android/view/View.OnAttachStateChangeListener.html它似乎适用于大多数情况,但我想知道这是否真的是正确的解决方案。我在想一个View
也可能是从一个人传下来的ViewGroup
到另一个而不脱离窗口。所以即使我愿意,我也不会收到事件。如果您有见解,能否详细说明一下?
提前致谢
您可以创建自定义视图并在其 onAttachedToWindow 中执行您的操作
public class CustomView extends View {
public CustomView(Context context) {
super(context);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
Log.d("CustomView", "onAttachedToWindow called for " + getId());
Toast.makeText(getContext(), "added", 1000).show();
}
}
如果您想确保您的自定义视图添加到您想要的正确视图组中
@Override
protected void onAttachedToWindow() {
// TODO Auto-generated method stub
super.onAttachedToWindow();
if(((View)getParent()).getId()== R.id.relativelayout2)
{
Log.d("CustomView","onAttachedToWindow called for " + getId());
Toast.makeText(context, "added", 1000).show();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)