1

我有一个显示客户信息的 UI。我遇到的问题是一些客户名称(android:id="@+id/customerName")很长,不适合文本视图。除了为名称提供完整布局宽度或从其旁边删除代码 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> 

4

5 回答 5

9

我通过使用修复它

android:layout_height="wrap_content"
android:inputType="textMultiLine"

希望这也适合你。

于 2013-10-23T15:33:07.243 回答
2

一种选择是将其设置为椭圆形,因此如果名称是“Really Long Name”,它可能会显示为“Really Lon...”。要做到这一点:

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

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

android:layout_width="wrap_content"

但我不确定它是否适用于您尝试做的所有其他事情(例如,表格行内的 fill_parent 和 width )

于 2012-10-14T06:48:47.333 回答
0

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

<TextView
        android:singleLine="false"
/>
于 2012-10-14T07:46:02.073 回答
0

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

于 2012-10-14T18:52:49.960 回答
0

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

于 2012-10-14T06:47:33.373 回答