ViewStub的父视图组

发布于 2024-11-07 07:09:27 字数 598 浏览 0 评论 0原文

该异常 ava.lang.IllegalStateException 的含义是什么

:ViewStub 必须有一个非空 ViewGroup viewParent

我正在创建一个 View Stub 数组并将它们添加到 LinearLayout 但此异常在运行时显示

for(int i=0;i<1;i++)
{
  try
     {
       stub[0]=new ViewStub(getApplicationContext(),R.layout.view_stub_layout);

      //Viewv=stub[i].inflate(getApplicationContext(),R.layout.view_stub_layout,mainLayout);
      //stub[0].setLayoutResource(R.layout.view_stub_layout);
      View v;
      v=stub[0].inflate();
      mainLayout.addView(v);
      v=null;
  }
  catch(Exception e){
      e.getMessage();
  }
}

What is the meaning of that exception

ava.lang.IllegalStateException: ViewStub must have a non-null ViewGroup viewParent

i am creating an array of View Stub and adding them to a linearLayout but this exception is showing at run time

for(int i=0;i<1;i++)
{
  try
     {
       stub[0]=new ViewStub(getApplicationContext(),R.layout.view_stub_layout);

      //Viewv=stub[i].inflate(getApplicationContext(),R.layout.view_stub_layout,mainLayout);
      //stub[0].setLayoutResource(R.layout.view_stub_layout);
      View v;
      v=stub[0].inflate();
      mainLayout.addView(v);
      v=null;
  }
  catch(Exception e){
      e.getMessage();
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

○闲身 2024-11-14 07:09:27

您的 ViewStub 没有父级,这就是您捕获异常的原因。您必须首先在 Layout 中添加 ViewStub,然后才能将其膨胀到另一个 View

为什么使用 ViewStub?你真的需要它吗?也许这可能是一个很好的解决方案:

try {
    View.inflate(getApplicationContext(), R.layout.view_stub_layout, mainLayout);
} catch(Exception e){
    e.getMessage();
}

如果您需要保留添加的视图:

try {
    views[i] = View.inflate(getApplicationContext(), R.layout.view_stub_layout, null);
    mainLayout.add(views[i]);
} catch(Exception e){
    e.getMessage();
}

Your ViewStub don't have a parent, that's why you catch Exception. You must add ViewStub in Layout at first, after you can inflate it to another View.

Why you use ViewStub? Do you really need it? Maybe it can be good solution:

try {
    View.inflate(getApplicationContext(), R.layout.view_stub_layout, mainLayout);
} catch(Exception e){
    e.getMessage();
}

If you need to keep added Views:

try {
    views[i] = View.inflate(getApplicationContext(), R.layout.view_stub_layout, null);
    mainLayout.add(views[i]);
} catch(Exception e){
    e.getMessage();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文