java - 如何以编程方式将 View 添加到 ViewContainer?

标签 java android

当我重写 MainAdapter extends PagerAdapterpublic Object instantiateItem 函数时,在 container.addView( 行,它崩溃了。我收到以下日志

java.lang.IllegalArgumentException: Cannot add a null child view to a ViewGroup
        at android.view.ViewGroup.addViewInLayout(ViewGroup.java:3909)
        at android.view.ViewGroup.addViewInLayout(ViewGroup.java:3890)
        at android.support.v4.view.ViewPager.addView(ViewPager.java:1302)
        at android.view.ViewGroup.addView(ViewGroup.java:3744)
        at com.jfeinstein.jazzyviewpager.JazzyViewPager.addView(JazzyViewPager.java:127)
        at com.ycg.bottommenuslidegradientswipe.MainActivity$MainAdapter.instantiateItem(MainActivity.java:260)

我的instantiateItem函数的代码如下所示。类 TaskCompletedView 扩展 View

@Override
public Object instantiateItem(ViewGroup container, final int position) {
    TasksCompletedView mTasksView = (TasksCompletedView) findViewById(R.id.tasks_view);
    container.addView(mTasksView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
    jazzyPager.setObjectForPosition(mTasksView,position);

    new Thread(new ProgressRunable()).start();
    return mTasksView;
    }

最佳答案

发生这种情况是因为您设置了空变量。 mTasksView == null; 您需要放置非空 View ,例如:

container.addView(new ImageView(context), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);

关于java - 如何以编程方式将 View 添加到 ViewContainer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813790/

相关文章:

java - Spark Streaming作业如何在Kafka主题上发送数据并将其保存在Elastic中

尝试创建 CommonsHttpOAuthConsumer 时出现 java.lang.ClassNotFoundException : org. apache.commons.codec.binary.Base64

Android HAL 调试 : How to enable logcat

java - 视差 XY 和旋转 - 平铺计算

java - Android Google+ 使用 WebView 登录

java - 如何使用 apache commons cli 指定多个选项?

java - 在开关/案例中添加等待?

android - 删除特殊字符时,replaceAll 函数不起作用

java - 如何将图标作为类路径资源添加到使用 WindowBuilder 创建的 SWT 窗口?

java - Android_id 的长度(以字节为单位)是多少?