我正在尝试在android中做一个类似Telegram message box的布局。
当文本很短时,消息和时间在一行中对齐,如下所示:

但是当消息文本更长时,文本视图被推到消息的底部,如下所示:

我如何才能做到这一点?
附注:我试着读了电报的来源,但没能弄清楚。我尝试在适配器中获取文本视图的大小,但没有成功。
发布于 2015-09-08 20:43:58
实际上它们不是在一行中对齐的。:D我认为您可以通过在RelativeLayout中包装time的TextView来实现这一点:
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/background"
android:padding="10dp" >
<TextView style="@style/TextView_port"
android:id="@+id/text"
android:text="Text" />
<RelativeLayout style="@style/LinearLayout"
android:layout_below="@id/text"
android:layout_margin="10dp"
android:gravity="right" >
<TextView style="@style/TextView_port"
android:text="3:59pm"
android:textColor="#73B661" />
</RelativeLayout>
</LinearLayout>在这里,我发现了一个技巧,可以将文本对齐设置为对齐:
https://dzone.com/articles/android-%E2%80%93-how-display
编辑
我终于想出了解决方案-上面编辑的代码是为了简短的文本。通过编程检查文本的长度,如果长度大于20,例如将线性的方向设置为垂直,将时间TextView的上边距设置为-20 -如果您不知道如何设置,我将在稍后更新我的答案:)
发布于 2015-09-08 20:50:26
您显示的示例看起来像一个包含两个TextView的RelativeLayout (第一个TextView左上角和第二个TextView右下角)。
应该可以通过使用一个RelativeLayout和两个TextViews来实现这一点。应根据文本长度正确定位TextViews (第二个TextView显示时间应始终位于右下角)。
https://stackoverflow.com/questions/32456885
复制相似问题