项目中遇到列表顶部部分重叠在banner上,导致banner指示图标被遮盖,网上搜索到的资源极少,部分建议通过自定义指示器的方法,本人觉得实在是麻烦,特此附上个人解决方案。
private void setBannerIndicatorLocation() {
ViewGroup viewGroup = (ViewGroup) banner.getViewPager().getParent();
for (int i = 0; i < viewGroup.getChildCount(); i++) {
if (viewGroup.getChildAt(i).getId() == R.id.loPageTurningPoint) {
View group = viewGroup.getChildAt(i);
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) group.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
layoutParams.setMargins(0,0,0,DimensUtil.getDimensValue(R.dimen.x60));
group.setLayoutParams(layoutParams);
}
}
}
提示:(ConvenientBanner 初始化之前进行设置)
原理:我们首先要找到indicator的父容器,但是源码并没有提供相关的get方法,兹以同级的viewPager获取,后面的不必赘述。