Я использую ViewStubs
для загрузки отображаемых данных в свой макет. Поскольку я использую для связывания компонентов макета, у меня есть пользовательские классы, которые содержат отдельные компоненты макета viewstub, например, один такой viewstub выглядит следующим образом.ViewStub должен иметь нулевой вид ViewGroup viewParent
<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
.
Как я могу справиться с этой ситуацией.
Можете ли вы опубликовать весь фрагмент кода, я сомневаюсь в вашем 'viewstub.inflate()' –