我正在使用ViewStubs
在我的布局中加载显示数据。因为我ButterKnife
用来绑定布局组件,所以我有自定义类来保存单独的viewstub 布局的组件,例如一个这样的viewstub 如下。
<ViewStub
android:id="@+id/featuredContentStub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/featuredContent"
android:layout="@layout/featured_content" />
处理@layout/featured_content
组件的类如下:
public class FeaturedContentView {
@BindView(R.id.art)
ImageView art;
@BindView(R.id.shade)
View shade;
@BindView(R.id.title)
TextView featuredTitle;
@BindView(R.id.performer)
TextView performer;
@BindView(R.id.featured_title)
KerningTextView featuredText;
@BindView(R.id.play_button)
Button play;
@BindView(R.id.shareText)
TextView shareText;
@BindView(R.id.addToFavorites)
ImageView addToFavs;
FeaturedContentView(View view) {
ButterKnife.bind(this, view);
}
}
我像这样膨胀布局:
if (viewstub != null) {
View view = viewstub.inflate();
featuredContentView = new FeaturedContentView(view);
}
上述方法在我的片段中的两个不同位置调用。它第一次正确充气,但第二次引用失败java.lang.IllegalStateException: ViewStub must have a non-null ViewGroup viewParent
。
我该如何处理这种情况。