Tim*_*ien 6 android android-viewpager
发生了什么:前两个ViewPager页面加载得很好(ViewPager自动从当前页面加载+ -1).当您滚动浏览这些页面时,下一页面不会显示.以下问题的GIF演示.
调试信息:该页面是被实例化(见下面的代码),并成功添加到ViewPager ArrayList<ItemInfo>mItems(通过日志消息确认).我android.support.v4用debug = true set(mmm frameworks/support/v4/在aosp中)重新编译了库,它显示了一切正常工作除了:
加载前两个视图后,将停止调用ViewPager中的onLayout和onMeasure方法.这意味着其他页面是黑色的,因为它们从未被测量和安排,因为它们应该是.我尝试在不同的点添加不同的requestLayout()调用以强制布局树刷新无效.
背景:我有一个通过inflater.inflate实例化的ViewPager,通过view.findViewById(R.layouy.myid)找到.它直接替换旧的Gallery视图,为了测试目的,PagerAdapter instantiateItem(集合,位置)只是这样做:
@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;
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?在我看来,像PageView的父母的一些神秘设置在某种程度上禁用onLayout PageView
Tim*_*ien 10
发现我的问题.在我的观点的父节点的父节点中,有人在没有调用的情况下进行子类化LinearLayout和覆盖.requestLayout()super.requestLayout()
这打破了我的视图层次结构的刷新,并阻止onMeasure和onLayout在我的ViewPager上被调用.在不测量和布置页面的情况下,它们在ViewPager中显示为空白.
希望有一天能帮助其他人.我确实花了很长时间才弄明白.
PRO提示:Android的SDK /工具/ hierarchyviewer是令人难以置信的.谢谢Android团队.每个人都应该至少运行一次,它在调试和设计任何UI时都是非常宝贵的.
| 归档时间: |
|
| 查看次数: |
7544 次 |
| 最近记录: |