TextView のラッパーである FrameLayout があります。TextView は、動的に変更されたテキストを持つ 2 つの TextView オブジェクトのいずれかになります。FrameLayout に含まれるテキストのすぐ右側に画像を追加したいと思います。私は2つのことを試しました:
RelativeLayout 内に FrameLayout を設定しました。ImageView を追加しました:
<RelativeLayout>
<!-- Two TextViews Here -->
<FrameLayout
android:id="@+id/my_frame_layout"
android:layout_width="match_parent"
...
/>
<ImageView
android:id="@+id/my_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/my_frame_layout"
/>
</RelativeLayout>
これは、レイアウトが初めて読み込まれたときに機能しました。ただし、FrameLayout に含まれるテキストが変更された場合、画像は TextView の右側にとどまるように再計算されるのではなく、最初に計算された位置にとどまりました。
そこでドローアブルにしてコードで設定してみました。FrameLayout に保持されている TextView を取得し、次のように呼び出しました。
setCompoundDrawablesWithIntrinsicBounds(0,0,myDrawable,0)
TextView が半分しか埋まっていないにもかかわらず、ドローアブルが常に FrameLayout の右端にあることを除いて、これはうまく機能しました。画像をテキストのすぐ右に配置したい。
これを実現するために私が試みることができる他の提案はありますか?