我有一个 FrameLayout,它是 TextView 的包装器。TextView 可以是具有动态修改文本的两个 TextView 对象之一。我想在 FrameLayout 中包含的文本的右侧立即添加一个图像。我尝试了两件事:
我在 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)
这很好用,除了可绘制对象始终位于 FrameLayout 的最右侧,尽管 TextView 仅半满。我希望图像立即位于文本的右侧。
有没有人有任何其他建议我可以尝试实现这一点?