我有一个RecyclerView,该代码是回收商的项目布局。
这是一条短信和右边的时间。
如果文字很小,那就行了。 但是当文本很大时,TextView的时间不会显示
我可以设置maxWidth,但我不想这样做。我想知道如何在布局
中总是固定时间<LinearLayout
android:id="@+id/layout_message"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left">
<TextView
android:id="@+id/tv_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TextAppearance.AppCompat.Body1"
android:text="Hello Mike bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla "
android:layout_margin="10dp"
/>
<TextView
android:id="@+id/tv_msg_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10sp"
android:text="10:20"
android:layout_marginRight="10dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="5dp"
/>
</LinearLayout>
修改: 适用于我的解决方案仅使用android:maxWidth
<LinearLayout
android:id="@+id/layout_message"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left">
<TextView
android:id="@+id/tv_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="320dp"
style="@style/TextAppearance.AppCompat.Body1"
android:text="la lalala la lalala la lalala la lalala la lalala la lalala la lalala la lalala la lalala la lalala la lalala la lalala la lalala la lalala la lalala la lalala @string/prompt_message"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="15dp"
/>
<TextView
android:id="@+id/tv_msg_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10sp"
android:text="10:20"
android:layout_marginRight="10dp"
android:layout_marginBottom="2dp"
android:layout_gravity="bottom"
/>
</LinearLayout>
答案 0 :(得分:2)
试试这个:在消息文本视图中添加权重。
<LinearLayout
android:id="@+id/layout_message"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left">
<TextView
android:id="@+id/tv_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TextAppearance.AppCompat.Body1"
android:text="Hello Mike bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla "
android:layout_margin="10dp"
android:layout_weight="1"/>
<TextView
android:id="@+id/tv_msg_time"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textSize="10sp"
android:text="10:20"
android:layout_marginRight="10dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="5dp"
android:gravity="bottom"/>
</LinearLayout>
答案 1 :(得分:1)
请改用此布局。这样可以解决您的问题。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_message"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_message"
style="@style/TextAppearance.AppCompat.Body1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="30dp"
android:text="Hello Mike bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla " />
<TextView
android:id="@+id/tv_msg_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/tv_message"
android:layout_marginBottom="5dp"
android:layout_marginRight="10dp"
android:layout_marginTop="15dp"
android:text="10:20"
android:textColor="@android:color/black"
android:textSize="10sp" />
</RelativeLayout>
答案 2 :(得分:0)
更改您的布局有点像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/layout_message"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1"
android:gravity="start">
<TextView
android:id="@+id/tv_message"
android:layout_width="0dp"
android:layout_weight=".85"
android:layout_height="wrap_content"
style="@style/TextAppearance.AppCompat.Body1"
android:text="Hello Mike bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla "
android:layout_margin="10dp"
/>
<TextView
android:id="@+id/tv_msg_time"
android:layout_width="0dp"
android:layout_weight=".15"
android:layout_height="wrap_content"
android:textSize="10sp"
android:text="10:20"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="5dp"
/>
</LinearLayout>
答案 3 :(得分:0)
正如@AbhayBohra所说,在textviews上使用weight属性并将宽度设置为0dp,如下所示:
<LinearLayout
android:id="@+id/layout_message"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left">
<TextView
android:id="@+id/tv_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="7"
style="@style/TextAppearance.AppCompat.Body1"
android:text="Hello Mike bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla "
android:layout_margin="10dp"
/>
<TextView
android:id="@+id/tv_msg_time"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textSize="10sp"
android:text="10:20"
android:layout_marginRight="10dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="5dp"
/>
</LinearLayout>