在EditText Android中启用滚动条
我的版面上有一个编辑文本。以下是我目前拥有的属性:在EditText Android中启用滚动条,android,scrollbar,android-edittext,Android,Scrollbar,Android Edittext,我的版面上有一个编辑文本。以下是我目前拥有的属性: <EditText android:id="@+id/entryIdea" android:layout_width="fill_parent" android:layout_height="225sp" android:gravity="top" android:background="@android:drawable/editbox_background" android:scrollbars="
<EditText
android:id="@+id/entryIdea"
android:layout_width="fill_parent"
android:layout_height="225sp"
android:gravity="top"
android:background="@android:drawable/editbox_background"
android:scrollbars="vertical"/>
你们能帮我吗
事先非常感谢你。
Sammy在XML中尝试设置
EditText
高度,而不是在layout\u height
中,而是使用android:lines
属性(顺便说一句,在设置除字体大小以外的任何大小时,使用sp通常不是一个好的做法。在这种情况下,使用dp/dip更自然)
同时将layout\u height
设置为wrap\u content
。否则,即使没有在代码中指定移动方法,您提供的XML(以及我提到的更改)也可以很好地为我工作
当然,当EditText中的实际文本行数大于android:lines属性中指示的行数时,滚动条将出现。请参阅此
使用以下命令:
android:maxLines="5"
属性,该属性用于xml文件。然后滚动条属性将起作用。您的xml文件使用:
editText1.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View view, MotionEvent event) {
// TODO Auto-generated method stub
if (view.getId() ==R.id.editText1) {
view.getParent().requestDisallowInterceptTouchEvent(true);
switch (event.getAction()&MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_UP:
view.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
}
return false;
}
});
android:maxLines="5"
在xml文件中使用:
android:maxLines="5"
android:maxLines=“5”
android:scrollbars=“垂直”
并在.java文件中添加
setMovementMethod(新的ScrollingMovementMethod()) 你需要检查你之前的问题,并将最佳答案标记为正确答案。当你在编辑文本中有足够的行时,它应该是可滚动的,因此需要滚动。您无需添加侦听器即可使其工作。你试过用很多行文本来填充它吗?只是为了记录,正如Coryffaeus(昵称btw)指出的,只有当你设置属性
滚动条
并且超过指定的行数时,滚动条才会显示。但是,在行中
,即使您没有设置它,它也将始终滚动。
android:maxLines="5"
editText1.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View view, MotionEvent event) {
// TODO Auto-generated method stub
if (view.getId() ==R.id.editText1) {
view.getParent().requestDisallowInterceptTouchEvent(true);
switch (event.getAction()&MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_UP:
view.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
}
return false;
}
});