TextView不显示所有文本

时间:2012-10-14 06:42:54

标签: android android-layout

我有一个显示客户信息的Ui。我遇到的问题是一些客户名称(android:id =“@ + id / customerName”)很长,不适合textview。什么选项我可以显示它们,然后选择给名称提供完整的布局宽度或从旁边删除代码textview(如xml文件android:id =“@ + id / customerName”中所示)。

 <?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="match_parent"
android:orientation="vertical" >

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="*" >

    <TableRow>

        <TextView
            style="@style/CustomerLabelTextView"
            android:gravity="right"
            android:text="@string/customerCode" />

        <TextView
            style="@style/CustomerLabelTextView"
            android:gravity="right"
            android:text="@string/customerName" />
    </TableRow>

    <TableRow>

        <TextView
            android:id="@+id/customerCode"
            style="@style/CustomerTextView"
            android:gravity="right" />

        <TextView
            android:id="@+id/customerName"
            style="@style/CustomerTextView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.0"
            android:gravity="right"
            android:maxEms="5"  />
    </TableRow>

    <TableRow android:gravity="right" >

        <TextView
            style="@style/CustomerLabelTextView"
            android:gravity="right"
            android:text="@string/customerAddress" />
    </TableRow>

    <TableRow android:gravity="right" >

        <TextView
            android:id="@+id/customerAddress"
            style="@style/CustomerTextView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.0"
            android:gravity="right"
            android:maxEms="5"   
            />
    </TableRow>

    <TableRow>

        <TextView
            style="@style/CustomerLabelTextView"
            android:gravity="right"
            android:text="@string/POBox" />

        <TextView
            style="@style/CustomerLabelTextView"
            android:gravity="right"
            android:text="@string/OrganizationName" />
    </TableRow>

    <TableRow>

        <TextView
            android:id="@+id/poBox"
            style="@style/CustomerTextView"
            android:gravity="right" />

        <TextView
            android:id="@+id/organizationName"
            style="@style/CustomerTextView"
            android:gravity="right" />
    </TableRow>

    <TableRow>

        <TextView
            style="@style/CustomerLabelTextView"
            android:gravity="right"
            android:text="@string/fax" />

        <TextView
            style="@style/CustomerLabelTextView"
            android:gravity="right"
            android:text="@string/phone" />
    </TableRow>

====================================风格++++++++++++++++++++++++++++++++++++++++

<style name="CustomerTextView">
  <item name="android:layout_width">fill_parent</item>
  <item name="android:layout_height">wrap_content</item>
  <item name="android:textSize">14sp</item>
  <item name="android:textColor">@android:color/white</item>
  <item name="android:layout_margin">5dp</item>
  <item name="android:background">@drawable/textview_border</item> 

5 个答案:

答案 0 :(得分:7)

我使用

修复了它
android:layout_height="wrap_content"
android:inputType="textMultiLine"

希望这也适合你。

答案 1 :(得分:2)

一个选项是将其设为ellipsize,因此如果名称为“Really Long Name”,它可能会显示为“Really Lon ...”。为此:

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

另一方面,您可以使用以下内容使textview更改大小以适合文本:

android:layout_width="wrap_content"

但是我不确定它是否适用于你想要做的其他事情(例如,在tablerow中的fill_parent和width)

答案 2 :(得分:0)

删除xml文件中的android:maxEms="5"行,然后尝试

答案 3 :(得分:0)

您可以通过将singleLine属性设置为false来使TextView扩展到第二行。

<TextView
        android:singleLine="false"
/>

答案 4 :(得分:0)

您可以尝试使textview可滚动,以便当要显示的数据太多时,滚动将显示隐藏的文本。 在xml文件中,将LinearLayout更改为ScrollView布局。