ListView中的Android文本被截断
我知道在论坛上有很多像这样的问题,但许多情况都是独特的,所以在这里。ListView中的Android文本被截断
我有一个自定义列表视图,基于应用程序主题以不同的方式显示“事件”。标题,alt-text和标签的文本全部被切断(不管高度如何设置)。你能帮我解决这个问题吗?
文本在我的3个主题中的两个中被切断,并且仅在实际设备(而不是仿真器)上切断。
每个列表项的代码非常相似,所以我只在下面附加一个(如果需要,将附加其他项);谢谢。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<!-- ?android:attr/listPreferredItemHeight -->
<LinearLayout android:id="@+id/viewrow_flags"
android:orientation="vertical" android:layout_width="36px"
android:layout_height="80px" android:layout_marginRight="6dip">
</LinearLayout>
<LinearLayout android:orientation="vertical"
android:layout_width="0dip" android:layout_weight="1"
android:layout_height="fill_parent">
<TextView android:id="@+id/viewrow_toptext"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:singleLine="true" android:layout_weight="1" android:gravity="center_vertical"
android:textColor="#00ccFF" android:textSize="6pt" android:paddingBottom="1dip"/>
<TextView android:layout_width="fill_parent" android:gravity="center_vertical"
android:layout_height="fill_parent" android:layout_weight="1"
android:id="@+id/viewrow_bottomtext" android:textColor="#0066FF"
android:singleLine="true" android:textSize="6pt" android:paddingBottom="1dip"/>
<TextView android:layout_width="fill_parent" android:gravity="center_vertical"
android:layout_height="fill_parent" android:layout_weight="1"
android:id="@+id/viewrow_tagtext" android:textColor="#0066FF"
android:singleLine="true" android:textSize="6pt" android:paddingBottom="1dip"/>
</LinearLayout>
<View android:id="@+id/viewrow_anchor" android:layout_width="0sp"
android:layout_height="60dip" android:layout_gravity="center" />
<TextView android:id="@+id/viewrow_dayview"
android:layout_width="60sp" android:layout_height="80px"
android:gravity="center" android:paddingLeft="6dip"
android:paddingTop="12dip" />
</LinearLayout>
我想通了这个问题,这是布局的重量和整体视图列表项的高度的混合物。
<LinearLayout android:orientation="vertical"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="fill_parent">
- <TextView android:id="@+id/viewrow_toptext"
android:layout_weight="1"
+ <TextView android:id="@+id/viewrow_toptext"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
- android:singleLine="true"
android:ellipsize="end"
android:gravity="center_vertical"
+ android:singleLine="true"
android:layout_weight="1"
android:gravity="center_vertical"
android:textColor="#00ccFF"
android:textSize="6pt"
android:paddingBottom="1dip"/>
- <TextView android:layout_width="fill_parent"
- android:ellipsize="end"
+ <TextView android:layout_width="fill_parent"
android:gravity="center_vertical"
android:layout_height="fill_parent"
android:layout_weight="1"
android:id="@+id/viewrow_bottomtext"
android:textColor="#0066FF"
android:singleLine="true"
android:textSize="6pt"
android:paddingBottom="1dip"/>
- <TextView android:layout_width="fill_parent"
- android:ellipsize="end"
+ <TextView android:layout_width="fill_parent"
android:gravity="center_vertical"
android:layout_height="fill_parent"
android:layout_weight="1"
android:id="@+id/viewrow_tagtext"
android:textColor="#0066FF"
android:singleLine="true"
android:textSize="6pt"
android:paddingBottom="1dip"/>
</LinearLayout>
<View android:id="@+id/viewrow_anchor"
android:layout_width="0sp"
- android:layout_height="70dip"
android:layout_gravity="center" />
+ android:layout_height="60dip"
android:layout_gravity="center" />
<TextView android:id="@+id/viewrow_dayview"
android:layout_width="60sp"
android:layout_height="80px"
android:gravity="center"
android:paddingLeft="6dip"
你有你的TextViews定义为单行与android:singleLine =“true”。所以,如果文字对于空间太大,它将被裁剪。将TextViews设置为允许包装发短信并扩展其高度,或者可以使用android:ellipsize =“marquee”属性在单行显示文本。
添加android:layout_weight="1"
那些谁是切断
我想我试着给这三个textviews使用相同的layout_weight,但它们仍然在我的实际设备上被切断。我稍后会确认。 – Blaskovicz
我试图设置所有的内部文本视图具有相同的权重,但这并没有解决问题。 – Blaskovicz
对我来说设置android:layout_gravity="center_vertical"
在TextView
工作。
只是改变layout_height = “FILL_PARENT” 线性到WRAP_CONTENT
<LinearLayout android:orientation="vertical"
android:layout_width="0dip" android:layout_weight="1"
android:layout_height="fill_parent">
<TextView android:id="@+id/viewrow_toptext"
是什么这两个变量之间的区别?我在android文档中查了一下,它说椭圆大小通常用于android:singleLine。 – Blaskovicz
是的,ellipsize是单行。将裁剪w /结束点或android:ellipsize =“marquee”将滚动文字从左到右像一个选取框。如果你有房间,尽管使用多线。更好的UI – SBerg413
设置这个属性并没有解决问题 - 我猜它有一些文字视图和他们的布局高度/权重。 – Blaskovicz