1

これが私のキャプチャ写真です:
ここに画像の説明を入力してください

そしてここに私のコードがあります:

<RelativeLayout
    android:id="@+id/wrapper"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:gravity="left">

    <TextView
        android:id="@+id/timeIn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"  
        android:layout_toRightOf="@+id/messageIn"          
        android:layout_gravity="center"
        android:layout_marginTop="15dip"
        android:text="23:23"/>

    <TextView
        android:id="@+id/messageIn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"       
        android:layout_gravity="center"
        android:layout_margin="5dip"
        android:background="@drawable/bubble_yellow"
        android:paddingLeft="10dip"
        android:text="HIHIHIHIHIHI" />



</RelativeLayout>

ただし、「HIHIHIHIHIHI」のテキストが「HIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHI
ここに画像の説明を入力してください

テキストがマルチラインであっても、時間がバブルの右側に残るようにするにはどうすればよいですか?

4

5 に答える 5

2

これを試して

<RelativeLayout
    android:id="@+id/wrapper"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:gravity="left">

    <TextView
        android:id="@+id/timeIn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"           
        android:layout_gravity="center"
        android:layout_marginTop="15dip"
        android:layout_alignParentRight="true"
        android:text="23:23"/>

    <TextView
        android:id="@+id/messageIn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"       
        android:layout_gravity="center"
        android:layout_margin="5dip"
        android:background="@drawable/bubble_yellow"
        android:layout_toLeftOf="@+id/timeIn" 
        android:layout_alignParentLeft="true" 
        android:paddingLeft="10dip"
        android:text="HIHIHIHIHIHI" />

</RelativeLayout>

小さいテキストにも対応するため (メッセージに応じて messageIn の幅を変更するため)、メッセージの右側に表示される時間 (右揃えではない)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="1.0" >

<LinearLayout
    android:id="@+id/lin_lay1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1.0" >

    <TextView
        android:id="@+id/messageIn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dip"
        android:background="@drawable/bubble_yellow"
        android:paddingLeft="10dip"
        android:text="HIHIHI" />
</LinearLayout>

<LinearLayout
    android:id="@+id/lin_lay2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0.1" >

    <TextView
        android:id="@+id/timeIn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="15dip"
        android:padding="5dp"
        android:text="23:23" />
</LinearLayout>

</LinearLayout>
于 2012-10-25T04:45:03.457 に答える
1

テキストビューで android:maxwidth を使用します。

于 2012-10-25T04:41:42.597 に答える
1

解決策は、「messageIn」TextView の android:maxWidth="" プロパティを設定することです。実行時 - デバイス画面の幅、「timeIn」TextView の幅を取得し、TextView の setMaxWidth(int maxpixels) メソッドで差 (画面幅 - timeIn 幅) を設定します。

画面サイズの取得方法はこちら

ここでGUIオブジェクトのサイズを取得する方法を参照してください

于 2012-10-25T04:48:15.393 に答える
0

layout_weight を使用すると、割り当てられたスペースのみが使用され、時間のテキストビューはカバーされません。

<LinearLayout
    android:id="@+id/wrapper"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:orientation="horizontal"
    android:weightsum="1">

    <TextView
        android:id="@+id/timeIn"
        android:layout_width="0dip"
        android:layout_height="wrap_content"  
        android:layout_weight="0.7"
        android:layout_gravity="center"
        android:layout_marginTop="15dip"
        android:text="23:23"/>

    <TextView
        android:id="@+id/messageIn"
        android:layout_width="0dip"
        android:layout_height="wrap_content"       
        android:layout_weight="0.3"
        android:layout_margin="5dip"
        android:background="@drawable/bubble_yellow"
        android:paddingLeft="10dip"
        android:text="HIHIHIHIHIHI" />

</LinearLayout>
于 2012-10-25T04:37:24.143 に答える
0

あなたは2つの方法でそれを行うことができます:-

  1. Linear Layout を使用して android:orientation="horizo​​ntal" を設定できます。Textview の layout_width を修正する必要があります。

  2. コード内で時間を TextView と連結します。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/wrapper"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:orientation="horizontal">
     <TextView
     android:id="@+id/messageIn"
     android:layout_width="200dp"
     android:layout_height="wrap_content"      
     android:text="HIHIHIHIdsfffffffffffffffffffffffffffffffffffffffffffffHIHI" />
    <TextView
     android:id="@+id/timeIn"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"  
     android:layout_marginTop="5dp"
     android:text="23:23"/>
    
    
     </LinearLayout>
    
于 2012-10-25T04:47:37.143 に答える