Android为内容(文本)设置边距/填充而不是容器(EditText)

时间:2013-09-12 21:23:19

标签: android android-edittext padding

我想要做的是在THE TEXT之前添加一些上边距/填充,而不是整个容器:

代码简单如下:

<EditText android:id="@+id/mightyText"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:gravity="left|top"
     android:inputType="textAutoComplete|textMultiLine"
     android:paddingLeft="20dp"
     android:paddingRight="20dp"
     android:paddingBottom="80dp"
     android:background="#fff" />

产生输出:

Desired behaviour

  

一旦它位于顶部,它就会很棒。对于侧面和顶部,我有相同的填充...


Naughty padding ;(

  

...但是当我滚动时,填充物仍然粘在容器上而不是上升到文本


这就是我喜欢它的方式(当没有滚动到顶部时):

Proper behavior

如何更改它,以便滚动文本而不是始终可见?

3 个答案:

答案 0 :(得分:20)

将它放在ScrollView中,它将自动处理滚动。 EditText不会对此负责,因此他的填充将按您的意愿工作。请尝试以下代码:

<ScrollView
           android:layout_width="match_parent"
           android:layout_height="wrap_content" >

           <EditText android:id="@+id/mightyText"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:gravity="left|top"
               android:inputType="textAutoComplete|textMultiLine"
               android:paddingLeft="20dp"
               android:paddingRight="20dp"
               android:paddingBottom="80dp"
               android:background="#fff" />

</ScrollView>

答案 1 :(得分:0)

它必须是EditText吗?如果用户不编辑它,则使用带有10dp顶部填充的普通TextView并将其包装在ScrollView中。

据我所知,没有办法在EditText的顶部设置内部填充。

答案 2 :(得分:0)

在ViewGroup上有一个名为clipToPadding的属性。文件说: Defines whether the ViewGroup will clip its drawing surface so as to exclude the padding area. This property is set to true by default.尝试在EditText中找到类似内容。