kotlin 使用viewStub
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                kotlin 使用viewStub
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                ViewStub是一個(gè)輕量級(jí)的的View,繼承于ViewGroup,沒(méi)有任何尺寸,不繪制任何東西,因此繪制或者移除時(shí)更省時(shí)。(ViewStub不可見(jiàn),大小為0)
優(yōu)點(diǎn)
實(shí)現(xiàn)View的延遲加載,避免資源的浪費(fèi),減少渲染時(shí)間,在需要的時(shí)候才加載View
缺點(diǎn)
- ViewStub所要替代的layout文件中不能有標(biāo)簽
- ViewStub在加載完后會(huì)被移除,或者說(shuō)是被加載進(jìn)來(lái)的layout替換掉了
用法
<ViewStubandroid:id="@+id/stub_id"android:layout="@layout/view_stub_layout"android:layout_width="match_parent"android:layout_height="wrap_content" />view_stub_layout.xml 文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/index_page_bg"android:orientation="vertical"><TextViewandroid:id="@+id/tv_advert_hot_expert"android:layout_width="match_parent"android:layout_height="100dp"android:layout_marginTop="5dp"android:layout_marginBottom="5dp"android:background="@color/white"android:gravity="center"android:text="預(yù)留廣告位置" /></LinearLayout>用ViewStub加載layout文件時(shí),可以調(diào)用?setVisibility(View.VISIBLE)或者inflate()
- stub_id.inflate() 或者
- stub_id.visibility = View.VISIBLE
注意
- 一旦ViewStub visible/inflated,則ViewStub將從視圖框架中移除,其id?stub_import也會(huì)失效
- ViewStub被繪制完成的layout文件取代,并且該layout文件的root view的id是android:inflatedId指定的id?panel_import,root view的布局和ViewStub視圖的布局保持一致
所以,當(dāng)inflate()之后,需要這樣寫:
tv_advert_hot_expert!!.text = "我是viewstub里的view"stub_id已經(jīng)失效,如果再使用這個(gè)id,會(huì)報(bào)nullpointException;
?
?
總結(jié)
以上是生活随笔為你收集整理的kotlin 使用viewStub的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: Ascll完整码表(256个)
- 下一篇: FTP 协议和 HTTP 协议的比较
