Android 如何查看FrameLayout 是否已添加视图
Android how to check in FrameLayout already view add or not
在我的应用程序中,我使用了 Framelayout,并在 FrameLayout 中添加了贴纸视图。
在我添加贴纸视图之前如何检查 Framelayout 是否已添加视图。
在我的应用程序中显示如下错误
java.lang.IllegalStateException: The specified child already has a parent.
我已经在 RecyclerView 适配器 itemView OnClickListener 中添加了 StickerTextView,如下所示:
itemView.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
tv_sticker.setText(""+ staticData.greetings);
canvas.addView(tv_sticker);
}
});
您可以在添加视图之前使用它:
if(stickerView.getParent() instanceof ViewGroup) {
((ViewGroup)stickerView.getParent()).removeView(stickerView);
}
frameLayout.addView(stickerView);
我在添加视图之前使用 removeAllViews() 方法解决了错误,如下所示:
itemView.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
tv_sticker.setText(""+ staticData.greetings);
canvas.removeAllViews();
canvas.addView(tv_sticker);
}
});
在我的应用程序中,我使用了 Framelayout,并在 FrameLayout 中添加了贴纸视图。 在我添加贴纸视图之前如何检查 Framelayout 是否已添加视图。
在我的应用程序中显示如下错误
java.lang.IllegalStateException: The specified child already has a parent.
我已经在 RecyclerView 适配器 itemView OnClickListener 中添加了 StickerTextView,如下所示:
itemView.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
tv_sticker.setText(""+ staticData.greetings);
canvas.addView(tv_sticker);
}
});
您可以在添加视图之前使用它:
if(stickerView.getParent() instanceof ViewGroup) {
((ViewGroup)stickerView.getParent()).removeView(stickerView);
}
frameLayout.addView(stickerView);
我在添加视图之前使用 removeAllViews() 方法解决了错误,如下所示:
itemView.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
tv_sticker.setText(""+ staticData.greetings);
canvas.removeAllViews();
canvas.addView(tv_sticker);
}
});