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);
        }
    }
}

Надеюсь, это поможет кому-то, где-то.

Другие вопросы по тегам