2015-01-27 3 views
0

android:id="@+id/date" TextView를 화면의 오른쪽에 맞추려고합니다. 이 문제는 작동하지만 TextView android:id="@+id/name"이 길면 날짜가 잘리는 문제가 있습니다. 예 : "Mon 1/26"대신 "Mon 1 ..."을 읽습니다. 전체 날짜가 항상 표시되도록 수정하려면 어떻게해야합니까? 아래는 내 XML 파일입니다. 도와 주셔서 미리 감사드립니다!안드로이드 : 오른쪽 정렬 TextView 및 자르지 않음

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/instance_chart" 
    style="@style/InstanceChart" 
    android:layout_height="40sp" 
    android:clickable="false" 
    android:focusable="false" 
    android:orientation="vertical"> 

    <com.my.name.chart.ChartView 
     android:layout_marginTop="9dp" 
     android:id="@+id/chart_view" 
     app:barLabelHeight="0sp" 
     android:layout_height="30dp" 
     style="@style/InstanceChart.Chart" /> 

<LinearLayout 
    android:orientation="horizontal" 
    android:weightSum="1" 
    style="@style/InstanceChart.Title" 
    > 

    <TextView 
     android:id="@+id/symbol" 
     android:layout_width="70sp" 
     android:layout_height="match_parent" 

     android:singleLine="true" 
     android:ellipsize="end" 
     android:gravity="left" 

     style="@style/InstanceChart.Symbol" 
     /> 

    <TextView 
     android:id="@+id/name" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 

     android:layout_weight="1" 
     android:gravity="left|center_vertical" 

     android:singleLine="true" 
     android:ellipsize="end" 

     style="@style/InstanceChart.Name" 
     /> 

    <TextView 
     android:id="@+id/date" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 

     android:singleLine="true" 
     android:ellipsize="marquee" 
     android:gravity="right|center_vertical" 
     android:textStyle="normal" 
     /> 

</LinearLayout>  
</FrameLayout> 

답변

0

간단한 수정 ... 마지막 textView

<TextView 
     android:id="@+id/date" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 

     android:ellipsize="none" 
     android:singleLine="true" 
     android:gravity="right|center_vertical" 
     android:textStyle="normal" 
     /> 
0

대신이 코드를 사용해보십시오. 나는 당신이 3 개의 텍스트 컬럼 레이아웃을 원하고, 두번째 컬럼 컬럼 레이아웃은 가능한 한 많이 늘어난 것으로 가정했다.

<LinearLayout 
    android:orientation="horizontal" 
    android:weightSum="1" 
    style="@style/InstanceChart.Title" 
    > 

    <TextView 
     android:id="@+id/symbol" 
     android:layout_width="70sp" 
     android:layout_height="match_parent" 

     android:singleLine="true" 
     android:ellipsize="end" 
     android:gravity="left" 

     style="@style/InstanceChart.Symbol" 
     /> 

    <TextView 
     android:id="@+id/name" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 

     android:singleLine="true" 
     android:ellipsize="end" 

     style="@style/InstanceChart.Name" 
     /> 

    <TextView 
     android:id="@+id/date" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 

     android:singleLine="true" 
     android:ellipsize="marquee" 
     android:gravity="right" 
     android:textStyle="normal" 
     /> 

</LinearLayout> 

TextView, android:gravity 세트 텍스트 정렬을 사용하여. 그러나 android:layout_gravity은 컨테이너에 TextView의 중력을 설정합니다.

여기서는 가로 LinearLayout을 사용하므로 모든 자식에 수평 맞춤을 적용 할 수 없습니다. 예를 들어, TextViewandroid:layout_gravity="left"을 설정하면 작동하지 않습니다.

+0

좋아 감사해야합니다. 그에 따라 코드를 업데이트했는데 날짜를 자름으로써 내 문제를 해결하지 못했습니다 ... – BoltzmannBrain

+0

세 번째'TextView'에서'ellipsize'와'singleLine' 속성을 제거해보십시오. –