想封装一个Banner的View,但是ViewPager怎么都显示不出来,
public class BannerView extends FrameLayout {
private View mRootView;
private ViewPager mBannerViewPager;
public BannerView(Context context) {
this(context , null);
}
public BannerView(Context context, AttributeSet attrs) {
this(context, attrs , 0);
}
public BannerView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
mContext = context;
mRootView = LayoutInflater.from(context).inflate(R.layout.m_banner_view_layout, this, false);
}
}
查了半天才发现
LayoutInflater.from(context).inflate(R.layout.m_banner_view_layout, this, false);是这个代码出了问题,
第三个参数的解释如下:
* @param attachToRoot Whether the inflated hierarchy should be attached to
* the root parameter? If false, root is only used to create the
* correct subclass of LayoutParams for the root view in the XML.
如果传false表示这个inflate的布局没有关联到根布局,要手动调用addView(mRootView ),才会添加到根布局,