Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android開發布局優化之ViewStub

android開發布局優化之ViewStub

編輯:關於Android編程

使用ViewStub可以延遲加載一個布局文件,提高顯示速率。剛開始接觸到,記錄下來。

關於viewstub的使用,我們可以在不同的布局中使用,比如可以根據設備的大小動態決定顯示哪個界面。

viewstub和include比較像,都是在一個布局文件中嵌入另外一個布局文件,然而viewstub是可以說是延遲加載,它只會在你手動指定加載的時候才會加載這個布局文件,而include則會立即加載。

在布局中使用ViewStub標簽來引入文件



    

    

view_stub_layout.xml



    

這是布局文件,那麼怎麼在程序運行時加載這個布局呢?

public class MainActivity extends ActionBarActivity {

    private ViewStub stub;
    private boolean isShow = true;
    private TextView tv;

    /* (non-Javadoc)
     * @see android.support.v7.app.ActionBarActivity#onCreate(android.os.Bundle)
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //布局的加載有兩種方式,一種是stub.inflate();
        //另一種是stub.setVisibility(View.VISIBLE);
        stub = (ViewStub) this.findViewById(R.id.vs);
//      stub.inflate();
        stub.setVisibility(View.VISIBLE);
        //實例化之後就可以拿到stub布局的根節點,然後可以對之進行操作
        View root = this.findViewById(R.id.inflated_id);
        //注意要先實例化stub,然後才可以拿到tv
        tv = (TextView) root.findViewById(R.id.tv);
        root.setBackgroundColor(Color.BLUE);
    }

    public void onClick(View v){
        switch (v.getId()) {
        case R.id.toggle:
            if (isShow) {
                stub.setVisibility(View.GONE);
            }else{
                stub.setVisibility(View.VISIBLE);
                tv.setText(---);
            }
            isShow = !isShow;
            break;

        default:
            break;
        }
    }
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved