1 StubView
專注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)江達(dá)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
作用:StubView標(biāo)簽中的布局只有在需要的時(shí)候才會(huì)被渲染加載。
注意:StubView的渲染加載操作只能執(zhí)行一次;不支持merge標(biāo)簽
使用示例:
(1)ViewStub中引用的布局
(2)使用ViewStub
(3)java代碼中渲染加載
ViewStub stub = (ViewStub)findViewById(R.id.viewstub); stub.inflate(); TextView stubtv = (TextView)layout.findViewById(R.id.sbtv); stubtv.setText("hello stub!");
2 include標(biāo)簽
作用:將引用的布局替換到當(dāng)前布局中該標(biāo)簽所處的位置;
注意:引用的布局非merge,設(shè)置inlude的id屬性后會(huì)覆蓋掉引用布局頂層layout的id;
示例1 引用布局非merge
(1)引用布局
(2)使用include標(biāo)簽
layout="@layout/my" android:layout_width="50dp" android:layout_height="50dp">
(3)java中使用
LinearLayout sharedlayout = (LinearLayout) findViewById(R.id.include1); TextView tv = (TextView) sharedlayout.findViewById(R.id.mytv); tv.setText("hello include1");
示例2 引用merge布局
(1)引用布局
(2)include標(biāo)簽:merge布局沒(méi)有id屬性,所以這里的id其實(shí)沒(méi)有意義
(3)java中使用
//LinearLayout layout = (LinearLayout)findViewById(R.id.include2);//通過(guò)該代碼無(wú)法獲取(1) 中的LinearLayout,這里的layout為null TextView mTV1 = (TextView)findViewById(R.id.mergetv1); mTV1.setText("hello merge tv1"); TextView mtv2 = (TextView)findViewById(R.id.mergetv2); mtv2.setText("hello merge tv2");
3 merge標(biāo)簽
merge標(biāo)簽相當(dāng)于控件的簡(jiǎn)單集合,被include到其他布局中后根據(jù)所處容器布局結(jié)合各個(gè)控件的相關(guān)屬性進(jìn)行布局。
注意:merge標(biāo)簽沒(méi)有id屬性
使用示例:
(1)merge布局
此時(shí)的布局為兩個(gè)textview重疊并且mergetv2處于上層;
(2)merge標(biāo)簽使用
(3)由于該include標(biāo)簽處于一個(gè)豎直的linearlayout中,此時(shí)merge布局的顯示效果如下:
merge text 1 |
merge text 2 |
TextView mTV1 = (TextView)findViewById(R.id.mergetv1); mTV1.setText("hello merge tv1"); TextView mtv2 = (TextView)findViewById(R.id.mergetv2); mtv2.setText("hello merge tv2");