我需要将我的信息和时间与屏幕中心对齐。 我的代码
<?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="horizontal"
android:paddingTop="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:gravity="center_horizontal">
<TextView
android:id="@+id/tvMessage"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web|email"
android:textSize="@dimen/system_msg_text_size"
android:textColor="@android:color/darker_gray"
android:text="MESSAGE"/>
<TextView
android:id="@+id/tvTime"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginLeft="5dp"
android:text="TIME"
android:singleLine="true"
android:textSize="@dimen/system_msg_text_size"
android:textColor="@android:color/darker_gray"/>
</LinearLayout>
我看到了
没关系
但是当消息更长时,我会看到ellipsize
我尝试为第二个TextView设置android:ellipsize="none"
现在我们看到裁剪的文字&#34; TIME&#34; - 没有&#39; E&#39;字符
我希望看到包装第一个TextView而不裁剪第二个TextView,并将其对齐到中心。
答案 0 :(得分:2)
我希望这会有所帮助
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:weightSum="2" >
<TextView
android:id="@+id/tvMessage"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:autoLink="web|email"
android:gravity="center_vertical"
android:text="MESSAGEasdas asdsadasdsadsadsadsad"
android:textColor="@android:color/darker_gray" />
<TextView
android:id="@+id/tvTime"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:singleLine="true"
android:text="TIME"
android:textColor="@android:color/darker_gray" />
</LinearLayout>
答案 1 :(得分:1)
我建议您使用RelativeLayout而不是LinearLayout。然后,将layout_alignParentLeft设置为Message TextView,将layout_alignParentRight设置为Time TextView的true,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp" >
<TextView
android:id="@+id/tvMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web|email"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/tvTime"
android:gravity="center_vertical"
android:text="MESSAGE long long long long long long long long"
android:textColor="@android:color/darker_gray"
android:textSize="15sp" />
<TextView
android:id="@+id/tvTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp"
android:gravity="center_vertical"
android:text="TIME"
android:textColor="@android:color/darker_gray"
android:textSize="15sp" />
</RelativeLayout>
结果是:
答案 2 :(得分:0)
尝试将Message TextView切换为宽度为0dp且权重为1,以便在测量TextView时间后将其宽度设置为剩余的剩余空间。如果这不起作用,请尝试将包含的布局切换为RelativeLayout并适当地定位内部TextView(使用alignParentRight =&#34; true&#34;对于Time TextView和layout_toLeftOf =&#34; @ + id /电视时间&#34;在消息TextView上。)
答案 3 :(得分:0)
通常情况下 - 一旦提出问题,答案就会到来。在此之前我试着做了两天) 解决方案是使用RelativeLayout并将第一个TextView设置为左侧TextView,并将第二个TextView的对齐方式设置为父级右侧。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:gravity="center_horizontal">
<TextView
android:id="@+id/tvMessage"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web|email"
android:textSize="@dimen/system_msg_text_size"
android:textColor="@android:color/darker_gray"
android:layout_toLeftOf="@+id/tvTime"
android:text="MESSAGE hk jhg jhg hghgjhgghhhgjkh gjghg jhg j gjg j gjh"/>
<TextView
android:id="@+id/tvTime"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginLeft="5dp"
android:text="TIME"
android:singleLine="true"
android:ellipsize="none"
android:layout_alignParentRight="true"
android:textSize="@dimen/system_msg_text_size"
android:textColor="@android:color/darker_gray"/>
</RelativeLayout>
答案 4 :(得分:0)
试试这种方式,希望这可以帮助您解决问题。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:gravity="center">
<TextView
android:id="@+id/tvMessage"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:autoLink="web|email"
android:textColor="@android:color/darker_gray"
android:text="MESSAGE long long long long long long long long"/>
<TextView
android:id="@+id/tvTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginLeft="5dp"
android:text="TIME"
android:singleLine="true"
android:textColor="@android:color/darker_gray"/>
</LinearLayout>