1:问题描述
场景:
app中有一个listview,listview的item是一条一条的新闻,而listview有一个head,是一个嵌套了viewPager的RelativeLayout布局.
错误:
布局中的其他内容可以显示,但是viewPager明明已经加载了图片但是无法显示;
2:问题分析
经过一些列探查发现有多种参数的设置会影响到viewPager的显示
3:解决方法
1没有为这个RelativeLayout包裹一层布局
我们上面为listview设置的head是一个relativeLayout布局,那么应该在这个布局的所有内容之外再包裹一个relativeLayout布局;
因为我们是使用LayoutInflater或者View.inflate()来把布局转换成一个view再加载到我们的listview中的,
那么他最外层的xml所使用的relativeLayout布局参数是无法生效的,因此需要再嵌套一层一模一样的relativeLayout;
这样会导致整个relativeLayout布局都无法显示
2在为viewPager加载图片(或者其他控件)的时候,没有使用layoutParams参数来为图片设置属性,因此viewPager无法识别图片的显示属性
而我们在使用LayoutParams的时候应该针对这个控件外层布局来选择,layoutParams是有很多种的;
3需要加载到viewpager的布局没有设置实际宽高,使用的是match_parent或者wrap_content;
如果无法显示,很可能是我们使用了这种参数,我们应该根据需要来设置,比如设置定值,如果宽高都使用match_parent的话很可能无法识别;
抓住以上3点就可以解决问题