gpt4 book ai didi

android - 布局聊天气泡问题 : TextView fills all the screen

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:48 25 4
gpt4 key购买 nike

我正在开发泡泡聊天。我使用具有两种布局的适配器,一种用于传入消息,另一种用于我的消息。适配器运行良好。我的问题是传入的布局,不能很好地显示传入的时间文本。当消息文本变长,填满整个屏幕的宽度时,它隐藏了消息文本的时间。

第一个问题:如何实现?

这是传入消息布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:animateLayoutChanges="true"
android:gravity="left">

<TextView
android:id="@+id/message_text_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5sp"
android:background="@drawable/speech_bubble_orange"
android:shadowColor="@color/textShadow"
android:shadowDx="1"
android:shadowDy="1"
android:text="Medium Text"
android:textColor="@color/textColor"
android:textSize="20sp" />

<RelativeLayout
android:id="@+id/message_server"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="left"
android:layout_gravity="left" >

<TextView
android:id="@+id/sended_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="9dp"
android:layout_marginTop="10sp"
android:text="Enviado"
android:textSize="10sp"
android:visibility="gone" />

<TextView
android:id="@+id/time_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="18dp"
android:layout_marginTop="23dp"
android:text="23:48"
android:textSize="10sp" />
</RelativeLayout>

</LinearLayout>

第二个问题我的消息布局相同,但改变了元素的位置并且运行良好。为什么?

这是问题的图片:

Image

编辑

我需要橙子气泡具有与绿色气泡相同的行为,当我在气泡中只有一个词时,以及当气泡中充满单词时具有相同的行为(见绿色气泡)

Image

最佳答案

设置 layout_weight 属性(在您的 message_text_server TextView 对象上设置 android:layout_weight="1"气泡布局)来告诉父容器您希望它如何将可用空间分配给它的子容器。

结果(除了我剥离的样式)你会得到你想要的:

enter image description here

参见 the docs或查看热门答案 in this question了解有关 layout_weight 及其使用的更多信息。

编辑

您一定是做错了什么,因为将父容器和服务器文本以及日期 TextView 字段宽度设置为 match_parent 并且服务器文本 layout_width 应该足以让两个 bubles .

编辑 2

您(ab)在您的布局中使用边距和填充。

I need that the oranges bubbles to have the same behaviour that the green´s when i have only a word in the bubble and the same behaviour when the bubble is full of words (see green bubbles)

您只需要使用 server_text TextView 的 layout_widthlayout_gravity 即可。这是正确的布局镜头:

enter image description here

然后是它背后的布局。不需要填充/边距。只是 gravity 和 play width heightwidth 加上 weight。稍后根据需要设置样式即可,您就可以回家了:

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

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left">
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5sp"
android:layout_weight="1"
android:text="Foo bar foo foo foo"
android:textSize="20sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="Enviado"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="23:48"
android:textSize="10sp" />
</LinearLayout>
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="Enviado"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="23:48"
android:textSize="10sp" />
</LinearLayout>
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5sp"
android:layout_weight="1"
android:text="Foo bar foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo"
android:textSize="20sp" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left">
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5sp"
android:layout_weight="1"
android:text="Foo bar foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo"
android:textSize="20sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="Enviado"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="23:48"
android:textSize="10sp" />
</LinearLayout>
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="Enviado"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="23:48"
android:textSize="10sp" />
</LinearLayout>
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5sp"
android:layout_weight="1"
android:text="Foo bar foo foo"
android:textSize="20sp" />
</LinearLayout>

</LinearLayout>

基本上不需要填充/边距。

关于android - 布局聊天气泡问题 : TextView fills all the screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com