12450


以下のように、LinearLayoutを使用してTextViewを水平方向に2つ並べた際に、1つ目のTextView内のtextが長文になると、もう一つが画面外に出てしまい、うまく並べることができません。

[code]

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="コメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメント"/>
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="12:34"/>
    
    </LinearLayout>
    
[/code]

１）コメントと投稿日時を水平に配置したい  
２）コメントが短い場合は、コメントの直後に投稿日時を配置したい（画面右側は空き）  
３）コメントが長い場合は、投稿日時は右端に表示、コメントは日時の手前で折り返しさせたい

上記を満たすために、どのようなレイアウトを記述すればよいか、お知恵をお貸し下さい。

[code]

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="コメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメント"/>
    
        </LinearLayout>
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="12:34"/>
    
    </LinearLayout>
    
[/code]

一見これでうまく行ったかと思ったのですが、これだと日時は常に右端に配置され、２）を満たすことができませんでした。


CC BY-SA 3.0
2015-07-12T05:52:12.313
12294
2015-07-17T13:22:22.330
10298
question
android-layout
水平方向にTextViewを2つ並べた時に、左側が長文だと右側が表示されない


コメント用のTextViewに、日時の幅が空く程度のmaxWidthを指定する と、よいかもしれません。  
(例では固定値にしてありますが、画面サイズ、dpi毎に、値を調整する必要があります。)

[code]

    <?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" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxWidth="250dp"
            android:text="コメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメント" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="12:34" />
    
    </LinearLayout>
    
[/code]


CC BY-SA 3.0
2015-07-17T13:22:22.330
12450
2015-07-17T13:22:22.330
10572
12294
answer