添加到父级的View上的通知?

ava*_*cha 4 android android-custom-view android-layout android-view

当我View在Android中动态构建一个Android时,我必须ViewGroup通过调用将它添加到"父"

myLinearLayout.addView(myView);
Run Code Online (Sandbox Code Playgroud)

我知道我可以监督ViewGroup通过优秀的onHierarchyChangeListener添加的任何孩子,但在我的情况下,我需要View自己的反馈.因此我的问题是:

View.onAddedToParent()我可以构建一个类似回调或监听器的东西吗?

为了使事情变得非常清楚:我希望视图能够自己处理所有事情,我知道我可以在"父"中捕获事件,然后通知视图有关事情,但这不是必需的.我只能改变观点

编辑:我刚刚找到onAttachStateChangeListener,它似乎适用于大多数情况,但我想知道这是否真的是正确的解决方案.我正在考虑将一个View可能从一个传递ViewGroup到另一个而不会脱离窗口.所以即使我愿意也不会收到活动.如果你有洞察力,请你详细说明一下吗?

提前致谢

Die*_*mar 5

您可以在其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();
   }
}
Run Code Online (Sandbox Code Playgroud)

如果要确保将自定义视图添加到所需的正确视图组中

@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();          
    }

}
Run Code Online (Sandbox Code Playgroud)