我创建了一个使用 ViewStub 的库并将其集成到我的项目中。当我运行应用程序时,我得到 java.lang.IllegalArgumentException: ViewStub must have a valid layoutResource
并且在 Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' 之后在空对象引用上
。
我创建了另一个没有该库但完全相同的 viewstub 的项目并且它工作了。
所以我猜库加载 ViewStub 的速度比应用程序慢。如果我错了,请纠正我。
有什么方法/解决方案可以从库中加载 ViewStub 吗?
最佳答案
所以我想回答我的问题给任何一个将来会遇到这个问题的人。
我刚刚替换了标签 <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);
}
}
}
希望这对某个地方的某个人有所帮助。
关于java - Android:如何在库中正确加载 ViewStub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51671920/