java - 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 的方法/解决方案?
解决方案
所以我想回答我的问题,任何人将来都会面临这个问题。
<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);
}
}
}
希望这会帮助某人,某处。
推荐阅读
- c# - 如何计算带有变量的按钮的名称
- typescript - 在 TypeScript 中,如果内联函数采用泛型类型的参数,我如何从中“获取”类型参数?
- modelica - 无法求解线性方程组
- c# - 我怎样才能只编码一次并复制 c#
- reactjs - ReactJs - ReferenceError:未定义提取
- java - 作业因阶段失败而中止:阶段 5.0 中的任务 0 失败 1 次,最近一次失败:阶段 5.0 中的任务 0.0 丢失
- excel - 列中唯一值的高级过滤器复制重复值
- php - 上传规则不会覆盖 IC
- c# - 使用 Unity 按键打开厨房橱柜
- split - NoneType' 对象没有属性 'split