編輯:關於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;
}
}
}
接上文 遺留問題 MainActivity的onCreate方法中如果沒有有這段代碼: // 強制在UI線程中操作 StrictMode.setThrea
Activity在窗口和ViewRootImpl創建後會請求WMS創建一個連接,請求WMS為其創建一個WindowState對象用來描述窗口狀態。Activity與WMS
之前有人在知乎提問:“怎麼計算apk的啟動時間?”: 利用Python或者直接用adb命令怎麼計算apk的啟動時間呢?就是計算從點擊圖標到apk完
我們有一個TextView,其裡面的內容是可以通過代碼動態改變的,我們想用一張圖片作為TextView的背景,實現類似於手機QQ對話中的氣泡文本效果。TextView定義