我有消息块。我想在消息的右下方显示时间。这是我的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>
我对短信没有问题,但是当消息延长日期没有显示时。你可以看到:
还有一件事:我想从左边做边距,但我不能。
我该怎么做?
答案 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"/>