使用findViewById方法避免空指针异常
在使用ViewStub时,如果找不到对应的View,则会返回null指针。为了避免空指针异常,应该在使用ViewStub之前,先使用findViewById方法去查找对应的View。如果查找到了View,则将ViewStub替换成该View;否则,就保持ViewStub的状态。
具体实现代码如下:
ViewStub stub = findViewById(R.id.viewStub);
View inflated = findViewById(R.id.inflatedView);
if(inflated == null) {
View view = stub.inflate();
//初始化View
} else {
stub.setVisibility(View.GONE);
}
其中,R.id.viewStub表示ViewStub的id,R.id.inflatedView表示ViewStub对应的布局文件中的view的id。如果inflated不为空,则说明ViewStub已经被inflate过了,这时需要将ViewStub隐藏即可。