当前位置: 首页 > 知识库问答 >
问题:

ViewPager PagerAdapter显示前两个项目后的空白页

曹原
2023-03-14

发生了什么:前两个ViewPager页面加载得很好(ViewPager自动从当前页面加载-1)。当您滚动浏览这些页面时,不会显示下一页。GIF演示下面的问题。

调试信息:页面正在实例化(请参见下面的代码),并已成功添加到ViewPagerArrayList

在加载前两个视图后,ViewPager中的onLayout和on测量方法将停止调用。这意味着其他页面是黑色的,因为它们从未被测量过

背景:我有一个通过充气机实例化的ViewPager。充气并通过视图找到。findViewById(R.layouy.myid)。它直接替换了旧的Gallery视图,出于测试目的,PagerAdapter实例化Item(集合、位置)只需执行以下操作:

@Override
public Object instantiateItem(View collection, final int position) {
    final TextView tv = new TextView(collection.getContext());
    tv.setText("Looking at page " + position);
    tv.setTextColor(Color.WHITE);
    tv.setBackgroundColor(Color.rgb( (int)(Math.random()*100), (int)(Math.random()*100), (int)(Math.random()*100)));
    tv.setTextSize(22);
    ((ViewPager) collection).addView(tv);
    return tv;
}

有什么想法吗?在我看来,PageView父母的某些神秘设置不知何故禁用了onLayout PageView


共有1个答案

宰父淳
2023-03-14

发现了我的问题。在我的视图的父级的父级中,有人子类化了LinearLayout并覆盖了请求布局(),而不调用super.request布局()

这打破了视图层次结构的刷新,并阻止在我的ViewPager上调用onMeasure和onLayout。没有对页面进行测量和布局,它们在ViewPager中显示为空白。

希望有一天这能帮助别人。我花了很长时间才明白。

专业提示:android-sdk/工具/层次查看器是令人难以置信的。感谢Android团队。每个人都应该至少运行它一次,它在调试和设计任何用户界面方面都是无价的。

 类似资料:
  • 我已经在本地机器上成功安装了 CakePHP 3。我使用WAMP服务器(http: // localhost /)。一切正常。当我通过FTP将相同的文件传输到Web服务器时 http://example.com/ cakephp 3不起作用,它会显示白色空白页。Web服务器(example.com)使用php 5.6版本。问题出在哪里?怎么了?

  • 本文向大家介绍tensorboard显示空白的解决,包括了tensorboard显示空白的解决的使用技巧和注意事项,需要的朋友参考一下 ubuntu 14.04 + python3.4 + chrome, 在浏览器中查看tensorboard, 发现出了graph,其他的数据都是空白。 通过分析,发现js中如下一些错误 Uncaught SyntaxError: Block-scoped decl

  • 我已经用php5 fpm设置了一个nginx服务器。当我尝试加载网站时,我得到一个没有错误的空白页面。Html页面可以很好地使用,但php却不行。我尝试在php中打开显示错误。但是没有运气。php5-fpm。日志没有产生任何错误,nginx也没有。 nginx。形态 编辑 这是我的nginx错误日志:

  • 我试图创建一个垂直轮播,显示上一个和下一个项目。 我能得到这样的东西: 肖特 风景 如您所见,横向模式已经显示下一个和项目之前。我想在竖屏中获得相同的结果。这是我使用的代码: activity_main.xml: SliderItem: 滑块适配器: 主要活动: 希望你能帮助我

  • 我在这里遵循GLUT教程。我将第一个示例“YAT”复制并粘贴到xcode中,稍微修改了包含,发现出现了一个空白窗口。未修改的代码设置为显示线框茶壶。对我来说,这不会发生。 但是,如果我取消对创建金牛座的注释,则金牛座和茶壶的一部分会出现在窗口中。在//draw下,似乎还有一些随机的非注释行和注释行的组合,它们实际上会导致对象出现……或者只是一个空白屏幕。 P、 我知道每个人都说不要使用GLUT,但

  • 我正在尝试使用 iReport 设计器(两者都具有空数据源)从主报告(report1.jrxml)创建一个子报告(report1_subreport3.jrxml)。主报表详细信息带包含静态文本(“主报表”),子报表元素和子报表在其相应的详细信息带中包含静态文本(“子报表”) 但单击主报表的预览选项卡仅显示静态文本“主报表”,而不显示子报表(“子报表”)的静态文本。 我还浏览了http://com