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);
}
}
}
希望这会在某个地方对某人有所帮助。
我创建了一个使用 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);
}
}
}
希望这会在某个地方对某人有所帮助。