首页 > 解决方案 > Android:如何在库中正确加载 ViewStub

问题描述

我创建了一个使用 ViewStub 的库并将其集成到我的项目中。当我运行应用程序时,我得到java.lang.IllegalArgumentException: ViewStub must have a valid layoutResourceAttempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference.

我创建了另一个没有该库但完全相同的viewstub 的项目并且它有效。

所以我猜这个库加载 ViewStub 会使应用程序变慢。如我错了请纠正我。

有没有从库中加载 ViewStub 的方法/解决方案?

标签: javaandroidviewviewstub

解决方案


所以我想回答我的问题,任何人将来都会面临这个问题。

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

希望这会帮助某人,某处。


推荐阅读