在消息块中显示时间

时间:2014-10-09 13:10:58

标签: android android-layout

我有消息块。我想在消息的右下方显示时间。这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">


<LinearLayout
    android:id="@+id/blocks"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/mes7"
    android:layout_marginRight="6dp"
    android:layout_marginLeft="6dp"
    android:clickable="false">
<TextView
    android:id="@+id/messageBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="6dp"
    android:gravity="left"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="1dp"
    android:text="Test Message"
    android:typeface="sans"
    android:textSize="14sp"/>

<TextView 
    android:id="@+id/date"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right|bottom"
    android:layout_marginRight="5dp"
    android:text="19:40"
    android:textSize="10sp"/>
</LinearLayout>
</LinearLayout>

我对短信没有问题,但是当消息延长日期没有显示时。你可以看到:

enter image description here

还有一件事:我想从左边做边距,但我不能。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您必须在LinearLayout的每一个周围包裹TextViews,以便准确地使用andorid:gravity中的TextViews属性。为每个LinearLayouts定义宽度权重值,这样无论文本消息有多少行,您的时间总是显示出来。为此,您必须在父布局(根android:weightSum)中使用LinearLayout属性,将android:layout_width的{​​{1}}值设置为LinearLayouts,最后设置为0dp使用LinearLayouts属性应用android:layout_weight中每个<LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" android:gravity="center" > <TextView android:id="@+id/messageBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:text="Test Message is this it has to be big to you can test it test here" android:textSize="14sp" android:typeface="sans" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_weight="0.2" android:clickable="false" > <TextView android:id="@+id/date" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:singleLine="true" android:text="19:40" android:textSize="12sp" /> </LinearLayout> 的宽度空间百分比。这将确保您的宽度值始终保持不变并相对于设备屏幕宽度。

试试这样:

{{1}}

答案 1 :(得分:0)

我建议在日期设置权重:

<TextView 
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_marginRight="5dp"
android:text="19:40"
android:textSize="10sp"
android:weight="1" />

然后您可能需要或不需要设置消息宽度来填充:

<TextView
android:id="@+id/messageBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="4dp"
android:layout_marginRight="6dp"
android:gravity="left"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="1dp"
android:text="Test Message"
android:typeface="sans"
android:textSize="14sp"/>