以下のように、LinearLayoutを使用してTextViewを水平方向に2つ並べた際に、1つ目のTextView内のtextが長文になると、もう一つが画面外に出てしまい、うまく並べることができません。
lang
1<LinearLayout 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:orientation="horizontal"> 5 6 <TextView 7 android:layout_width="wrap_content" 8 android:layout_height="wrap_content" 9 android:text="コメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメント"/> 10 11 <TextView 12 android:layout_width="wrap_content" 13 android:layout_height="wrap_content" 14 android:text="2015/7/14 12:34"/> 15 16</LinearLayout>
1)コメントと投稿日時を水平に配置したい
2)コメントが短い場合は、コメントの直後に投稿日時を配置したい(画面右側は空き)
3)コメントが長い場合は、投稿日時は右端に表示、コメントは日時の手前で折り返しさせたい
上記を満たすために、どのようなレイアウトを記述すればよいか、お知恵をお貸し下さい。
lang
1<LinearLayout 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:orientation="horizontal"> 5 6 <LinearLayout 7 android:layout_width="0dp" 8 android:layout_height="wrap_content" 9 android:layout_weight="1"> 10 11 <TextView 12 android:layout_width="wrap_content" 13 android:layout_height="wrap_content" 14 android:text="コメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメントコメント"/> 15 16 </LinearLayout> 17 18 <TextView 19 android:layout_width="wrap_content" 20 android:layout_height="wrap_content" 21 android:text="12:34"/> 22 23</LinearLayout>
一見これでうまく行ったかと思ったのですが、これだと日時は常に右端に配置され、2)を満たすことができませんでした。
最初のTextViewに適当なmaxWidthを指定すれば、その位置で折り返しが開始することは分かったのですが、このmaxWidthをコードで動的に計算するしか方法はないのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/07/18 14:01