Android: как правильно загрузить ViewStub в библиотеку
Я создал библиотеку, которая использует ViewStub, и интегрировал ее в свой проект. Когда я запускаю приложение, я получаю java.lang.IllegalArgumentException: ViewStub must have a valid layoutResource
и сразу после Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
,
Я создал другой проект без этой библиотеки, но точно такой же viewstub, и это сработало.
Так что я предполагаю, что библиотека загружает ViewStub медленнее приложения. Поправьте меня если я ошибаюсь.
Есть ли подход / решение для загрузки ViewStub из библиотеки?
1 ответ
Поэтому я хочу ответить на мой вопрос, чтобы кто-нибудь столкнулся с этой проблемой в будущем.
Я просто заменил тег <ViewStub>
от <include>
и добавил макет к нему, как это
<include
android:id="@+id/include_action_bar"
android:layout_width="fill_parent"
android:layout_height="59dp"
layout="@layout/actionbar_layout_sml" />
и затем я настраиваю видимость в зависимости от моих потребностей, например, так (например, для actionBar):
public void setActionBarVisibility(boolean visible) {
View view = findViewById(R.id.include_action_bar);
if (view != null) {
if (visible) {
view.setVisibility(View.VISIBLE);
}
else {
view.setVisibility(View.GONE);
}
}
}
Надеюсь, это поможет кому-то, где-то.