我有一个显示客户信息的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>
答案 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布局。