2016-12-08 7 views
1

2行のTextViewを1行に収める必要があります。私はLinearLayoutを使用しようとしましたが、現在、私の最良のアプローチはRelativeLayoutを使用することです。 私はそれになりたいとき、あなたはそれのフィット感の良いを見ることができますが、2番目のTextViewが右側にあるのでここではあなたがそれフィット2 TextViews

 <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_gravity="start" 
     android:visibility="visible"> 

     <TextView 
      android:id="@+id/partner_full_name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="left" 
      android:layout_alignParentLeft="true" 
      android:textColor="@color/black" 
      android:maxLines="2" 
      android:textSize="12sp" 
      android:layout_toLeftOf="@+id/session_duration" 
      android:text="@string/dummy_text" /> 
     <TextView 
      android:id="@+id/session_duration" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="16dp" 
      android:maxLines="1" 
      android:textSize="12sp" 
      android:layout_alignParentRight="true" 
      android:text="asdadsd" 
      android:textColor="@android:color/darker_gray" 
      /> 
    </RelativeLayout> 

そして結果

Result

のためのXMLを見ることができます最初のTextViewの後。 LinearLayoutを使用したとき、最初のTextViewのサイズに問題がありました(複数のテキストがある場合は、2番目のTextViewが画面から消えます)。 LinearLayoutを持つ別のアプローチは、

+0

weightsum .. –

+0

android:layout_alignParentRight = "true" 'これを削除します。 –

+0

@SatanPandeyaを削除すると、2番目のTextViewは左に移動します(親ビューの左側にあります) – Ekalips

答えて

2

これが起こります。 textView1に画面全体のスペースが必要な場合は、textView2には何も表示されません。代わりにlayout_weightを使用すると、常に彼の空間を見ることができます。

<?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:layout_gravity="start" 
    android:gravity="center" 
    android:visibility="visible" 
    android:orientation="horizontal"> 

<TextView 
    android:id="@+id/partner_full_name" 
    android:layout_width="0dp" 
    android:layout_weight=".5" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:maxLines="2" 
    android:text="Super Long String" 
    android:textColor="@color/black" 
    android:textSize="12sp" /> 

<TextView 
    android:id="@+id/session_duration" 
    android:layout_width="0dp" 
    android:layout_weight=".5" 
    android:layout_height="wrap_content" 
    android:maxLines="1" 
    android:text="I will always show" 
    android:textColor="@android:color/darker_gray" 
    android:textSize="12sp" /> 
</LinearLayout> 
+1

ありがとう!それは素晴らしい仕事でした! – Ekalips

+0

だからしばらくそれを使用して、問題に直面しました。 TextView1(partner_full_name)のテキストが小さい場合は、すべて表示されます。しかし、視野の半分よりも大きくなると、先にスペースがたくさんあるにもかかわらず、2行目に強制されてしまいます(TextView2のテキストはほとんどの場合小さくなります)。結果的に私は本当に奇妙な見方をしています。 – Ekalips

0
(第2ビューの間違った位置)と同じ問題にRelativeLayoutに私に

を同様の結果が得られた第二のTextViewからこの行を削除します。あなたはwrap_contentを使用しているため

android:layout_alignParentRight="true"