关于将视图添加到父级的通知?

2024-01-11

当我建立一个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(使用前将#替换为@)

关于将视图添加到父级的通知? 的相关文章

随机推荐