是否可以使用本地Android部件膨脹ViewStub?使用本機部件膨脹ViewStub
例如:
<LinearLayout...>
<TextView...>
<TextView...>
<ViewStub...>
</LinearLayout>
我想替換/與交換機或一個複選框充氣ViewStub。那可能嗎?
是否可以使用本地Android部件膨脹ViewStub?使用本機部件膨脹ViewStub
例如:
<LinearLayout...>
<TextView...>
<TextView...>
<ViewStub...>
</LinearLayout>
我想替換/與交換機或一個複選框充氣ViewStub。那可能嗎?
設置佈局膨脹到ViewStub
之一:
設置通過XML佈局:
<ViewStub
android:id="@+id/stub"
android:inflatedId="@+id/myLayout"
android:layout="@layout/myLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
或者,在運行時設置的佈局:
viewStub.setLayoutResource(R.layout.myLayout);
然後,可以使ViewStub
充氣。
View inflatedView = viewStub.inflate();
你可以稱之爲從那裏你想要的,如Switch
或Checkbox
被點擊(因爲你問)這個inflate()
方法。
那麼如果我想膨脹一個原生的android開關小部件,它應該設置什麼佈局資源? – Vas
您可以創建一個包含Switch小部件的佈局文件。然後膨脹該佈局資源。 –
目前無法用View
對象代替StubView
。您必須創建代表您要替換的視圖的佈局。因此,舉例來說,如果你想用一個單一的CheckBox
打開它,你需要這樣的
<?xml version="1.0" encoding="utf-8"?>
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_checkbox"
android:text="Click me"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
然後調用
viewStub.setLayoutResource(R.layout.my_checkbox);
viewStub.inflate();
創建佈局如果需要,你可以膨脹的視圖的引用用這個代替
CheckBox checkInflated = (CheckBox)viewStub.inflate();
你看過這裏嗎? https://stackoverflow.com/a/37442268/2910520,你需要的是同樣的東西 – MatPag
是的,我做到了。這與我試圖膨脹的佈局並不是一回事,而是一個原生的Android小部件。我沒有明確的佈局。 – Vas
你應該創建一個新的佈局來表示你想膨脹的東西。目前沒有辦法在StubView中膨脹一個View對象 – MatPag