Android: 如何在库中正确加载ViewStub

Android: How to load correctly ViewStub in library

我创建了一个使用 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 的速度比应用程序慢。如果我错了,请纠正我。

有没有approach/solution从库中加载ViewStub?

所以我想回答我的问题,因为任何人将来都会遇到这个问题。

我刚刚用 <include> 替换了标签 <ViewStub> 并像这样添加了布局

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

希望这会在某个地方对某人有所帮助。