亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

ViewStub從頭到位就只能加載一次是嗎?設置了隱藏之后再重新加載程序還是會崩潰是不是因為這個原因?在實際開發中應該如何避免或者是解決這個問題呢?

public void onClick(View v){

????if(flag){

? ? stub.inflate();

????flag = false;

????}else{

????stub.setVisibility(View.GONE);

????flag = true;

????}

}

正在回答

2 回答

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("顯示");
????????}
????}

}


1 回復 有任何疑惑可以回復我~
#1

零即是圓 提問者

非常感謝!
2015-12-19 回復 有任何疑惑可以回復我~
#2

元素滴3579866

請問一下,這個view只要加載一次就不會是null了嗎,還是說我把view = viewStub.inflate();if外也行是吧
2016-08-19 回復 有任何疑惑可以回復我~
if?("顯示".equals(bt.getText()))?{
			????????????viewstub.setVisibility(View.VISIBLE);
			????????????bt.setText("隱藏");
			????????}?else?if?("隱藏".equals(bt.getText()))?{
			????????????viewstub.setVisibility(View.INVISIBLE);
			????????????bt.setText("顯示");
			??????}

這樣也行,就是沒用到inflate()

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Android攻城獅的第二門課(第1季)
  • 參與學習       111145    人
  • 解答問題       1560    個

本課程由淺入深地帶您學會Android的常用控件的開發和使用

進入課程

ViewStub從頭到位就只能加載一次是嗎?設置了隱藏之后再重新加載程序還是會崩潰是不是因為這個原因?在實際開發中應該如何避免或者是解決這個問題呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號