我试图将android:id="@+id/date"
TextView与屏幕右侧对齐。这是有效的,但问题是当TextView android:id="@+id/name"
很长时,日期会被截断。例如。而不是" Mon 1/26"它会读到" Mon 1 ..."。我该如何解决这个问题,以便始终显示完整日期?下面是我的xml文件。提前感谢您的帮助!
<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 :(得分: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
,因此无法对其所有子项应用水平对齐。例如,在android:layout_gravity="left"
上设置TextView
将无效。
答案 1 :(得分: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"
/>