Androidアクティビティでは、レイアウトの特定の位置に1つのビューを(実行時に)動的に追加する必要があります。追加するビューは実行時に決定されます。たとえば、レイアウトは次のようになります。動的に追加されたビューのAndroidレイアウトプレースホルダ
<LinearLayout ...>
<TextView ... />
<!-- Dynamic item to be added here -->
<TextView ... />
</LinearLayout>
これを達成する最も良い方法は何ですか?
解決策の1つはlayout.addView(view, index)
ですが、インデックスをハードコードしたくない場合があります。
別の解決策は、プレースホルダとしてでframeLayoutを使用することで、その場所がでframeLayout内部動的ビューは、例えば:
<LinearLayout ...>
<TextView ... />
<FrameLayout android:id="@+id/placeholder" />
<TextView ... />
</LinearLayout>
そして:
findViewById(R.id.placeholder).addView(view);
しかし、これは、不必要なビューを追加します階層内にある。
これを行うにはどのような方法が適していますか?
ありがとうございました。私は 'findViewById(R.id.placeholder).addView(view);'を使用して終了しました。プレースホルダはFrameLayoutや、ScrollViewのように最後に追加する必要がある場合は他のレイアウトにすることができます。 – Ralf
そのようなネストされたビューの深いツリーが表示されることがあります。これは、UIスレッドのスタックサイズが制限されているため、stuckoverflowerrorが発生する場合があります。 –