ViewStub从头到位就只能加载一次是吗?设置了隐藏之后再重新加载程序还是会崩溃是不是因为这个原因?在实际开发中应该如何避免或者是解决这个问题呢?
public void onClick(View v){
if(flag){
stub.inflate();
flag = false;
}else{
stub.setVisibility(View.GONE);
flag = true;
}
}
public void onClick(View v){
if(flag){
stub.inflate();
flag = false;
}else{
stub.setVisibility(View.GONE);
flag = true;
}
}
2015-11-26
ViewStub只能加载一次,当把这个外部布局文件inflate后,它就已经存在于内存中了,可以定义一个属性去标识它,如果没加载时就inflate,加载完成后就setVisibility来控制显示或隐藏。比如show_button最开始其显示内容是“显示”。部分代码如下:
private Button show_button; private ViewStub viewStub; private View view = null; @Override public void onClick(View v) { if (view == null) { view = viewStub.inflate(); show_button.setText("隐藏"); } else { if ("显示".equals(show_button.getText())) { view.setVisibility(View.VISIBLE); show_button.setText("隐藏"); } else if ("隐藏".equals(show_button.getText())) { view.setVisibility(View.INVISIBLE); show_button.setText("显示"); } } }
举报