是否可以使用原生Android小部件来扩充ViewStub?
例如:
<LinearLayout...>
<TextView...>
<TextView...>
<ViewStub...>
</LinearLayout>
我想用Switch或Checkbox替换/膨胀ViewStub。这可能吗?
答案 0 :(得分:0)
将布局设置为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();
您可以根据需要调用此inflate()
方法,例如点击Switch
或Checkbox
(按照您的要求)。
答案 1 :(得分:0)
目前无法用StubView
对象替换View
。您必须创建表示要替换的视图的布局。例如,如果您想使用单个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();