2017-07-31 98 views
1

在我的應用程序中,我使用了Framelayout,並在FrameLayout中添加了貼圖視圖。 之前我添加貼紙視圖如何檢查在Framelayout已經查看添加與否。Android如何檢查FrameLayout已經查看是否添加

在我的應用程序顯示錯誤如下

java.lang.IllegalStateException: The specified child already has a parent. 

我有加StickerTextView在RecyclerView適配器ItemView控件OnClickListener象下面這樣:

itemView.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       tv_sticker.setText(""+ staticData.greetings); 
       canvas.addView(tv_sticker); 
      } 
     }); 
+0

你可以添加你的代碼添加你的貼紙視圖到框架佈局的代碼嗎? –

+0

您可以使用view.getParent()檢查將作爲子項的視圖元素是否具有父項。 檢查這個問題: https://stackoverflow.com/questions/17721991/check-if-view-element-is-added-to-layout-or-not-programmatically – smukamuka

回答

0

我已經解決了addview之前使用removeAllViews()方法的錯誤像bellow :

itemView.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      tv_sticker.setText(""+ staticData.greetings); 
      canvas.removeAllViews(); 
      canvas.addView(tv_sticker); 
     } 
    }); 
0

您可以使用此添加視圖前:

if(stickerView.getParent() instanceof ViewGroup) { 
    ((ViewGroup)stickerView.getParent()).removeView(stickerView); 
} 
frameLayout.addView(stickerView);