EditText切断文本

问题描述:

我正在处理我的第一个应用程序,并且有轻微的XML问题。这就是我的屏幕目前的样子,你可以看到“投资”一词被削减了一半。EditText切断文本

android screenshot

这里是我的代码,是生产这种行为:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.quinnmchugh.networthcalculator.MainActivity$PlaceholderFragment" 
android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/lblPrincipal" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="@string/principal" 
     android:layout_weight="2" 
     android:gravity="right" 
     android:layout_marginRight="@dimen/activity_horizontal_margin" 
     android:textSize="16sp" /> 

    <EditText 
     android:id="@+id/txtPrincipal" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="ex. 5,000" 
     android:layout_weight="3" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/lblStartingSalary" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="@string/starting_salary" 
     android:layout_weight="2" 
     android:gravity="right" 
     android:layout_marginRight="@dimen/activity_horizontal_margin" 
     android:textSize="16sp" /> 

    <EditText 
     android:id="@+id/txtStartingSalary" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="ex. 60,000" 
     android:layout_weight="3" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_marginTop="24dp" > 

    <TextView 
     android:id="@+id/lblAnnualReturn" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="@string/annual_return" 
     android:layout_weight="2" 
     android:gravity="right" 
     android:layout_marginRight="@dimen/activity_horizontal_margin" 
     android:textSize="16sp" /> 

    <EditText 
     android:id="@+id/txtAnnualReturn" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="ex. 7%" 
     android:layout_weight="3" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/lblPercentOfIncome" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="@string/percent_of_income" 
     android:layout_weight="2" 
     android:gravity="right" 
     android:layout_marginRight="@dimen/activity_horizontal_margin" 
     android:textSize="16sp" /> 

    <EditText 
     android:id="@+id/txtPercentOfIncome" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="ex. 15%" 
     android:layout_weight="3" /> 

</LinearLayout> 

什么我需要修复,以获得的EditText完全包裹本身显示的全部内容字符串?

向正在切断的元素添加一些填充。例如:

<TextView 
    android:id="@+id/lblPercentOfIncome" 
    ... 
    android:paddingBottom="16dp" /> 
+0

所以这表明'padding'没有被继承,你必须为每个对象重新声明它? – 2014-09-06 14:02:05

+0

它不是“继承的”,但是你的父容器可以包含它自己的独立填充(可以或不可以被子视图使用)。 – Booger 2014-09-06 16:23:27

将新行“\ n”添加到您的文本中。这将始终显示您的所有文字。

+0

这个解决方案虽然有效,但看起来像是一个“廉价黑客”。这是行业首选解决这个问题的方法吗? – 2014-09-06 14:16:03

+0

哈哈我不确定行业的首选。我只是一名工程学生。但它为我解决。 – 2014-09-06 14:17:37

+0

'Hack'的定义是谁写的(即,如果你写了它,这是一个黑客,如果我写了它,是一个快速的解决方法)。我不会这样做,因为Android会修剪文本的前部和后部的空白部分 - 尤其是在通过Strings.xml解析时。 – Booger 2014-09-06 16:22:50