2017-06-12 9 views
0

ネイティブアンドロイドウィジェットでViewStubを拡張することは可能ですか?例えばネイティブウィジェットを含むViewStubを膨張させる

<LinearLayout...> 
<TextView...> 
<TextView...> 
<ViewStub...> 
</LinearLayout> 

は、私がスイッチまたはチェックボックスを膨らませる/ ViewStubを交換したいです。それは可能ですか?

+0

ここをお読みになりましたか? https://stackoverflow.com/a/37442268/2910520、必要なものは同じものです – MatPag

+0

はい、私はしました。これは、私が膨らませようとしているレイアウトがネイティブアンドロイドウィジェットのためのものと全く同じではありません。私はそれのための明示的なレイアウトを持っていません。 – Vas

+0

あなたは膨らませたいものを表す新しいレイアウトを作成する必要があります。現在、StubViewでViewオブジェクトを拡張する方法はありません – MatPag

答えて

0

いずれかViewStubに膨らませるレイアウトを設定するには:

<ViewStub 
    android:id="@+id/stub" 
    android:inflatedId="@+id/myLayout" 
    android:layout="@layout/myLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

または、実行時にレイアウトを設定します:XMLを介したレイアウトを設定

その後

viewStub.setLayoutResource(R.layout.myLayout); 

を、あなたにViewStubを膨らませることができます。

View inflatedView = viewStub.inflate(); 

あなたは(あなたが尋ねたとして)、などSwitchCheckboxがクリックされたい場所からこのinflate()メソッドを呼び出すことができます。

+0

ネイティブのアンドロイドスイッチウィジェットを拡張するには、どのレイアウトリソースを設定する必要がありますか? – Vas

+0

スイッチウィジェットを含むレイアウトファイルを作成します。次に、そのレイアウトリソースを拡張します。 –

0

現在、StubViewViewオブジェクトに置き換える方法はありません。置換するビューを表すレイアウトを作成する必要があります。あなたは、単一の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(); 
関連する問題