17

我想要做的是在 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" />

产生输出:

期望的行为

一旦它在顶部,它就会很好地工作。我的侧面和顶部有相同的填充...


顽皮的填充物;(

...但是当我滚动时,填充会粘在容器上而不是与文本一起上升


这就是我想要的样子(当不滚动到顶部时):

正确的行为

如何更改它,使其与文本一起滚动而不是始终可见?

4

3 回答 3

26

把它放在 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>
于 2013-09-13T20:23:04.393 回答
0

在 ViewGroup 上有一个名为clipToPadding. Docs 说: 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 中找出类似的东西。

于 2013-09-13T08:16:05.027 回答
0

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

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

于 2013-09-12T21:41:07.423 回答