2010-11-30 123 views
6

我的布局上有一个EditText。以下是我目前拥有的属性:在EditText中启用滚动条Android

<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"/> 

但是,我可以看到滚动条,但不能用鼠标/触摸进行滚动。 我认为它可以工作,如果我把相应的侦听器,因为它在TextView上工作。显然,它不是。

EditText et = (EditText)findViewById(R.id.entryIdea); 
et.setMovementMethod(new ScrollingMovementMethod()); 

你们能帮我解决吗?

非常感谢你提前。 萨米

+2

您需要通读您以前的问题并将最佳答案标记为正确答案。 – 2010-11-30 22:50:19

+0

一旦你在EditText中有足够的行,所以它需要被滚动,它应该是可缩放的。你不需要添加监听器来使其工作。 您是否试图用多行文本填充它? – Juhani 2010-11-30 22:51:00

回答

7

在你的XML尝试layout_height设置EditText高度不,而是使用android:lines属性(顺便说一句,使用SP通常不是除了字体大小的任何设置大小时,一个很好的做法。使用DP /垂更在这种情况下是自然的)。

同时将layout_height设置为wrap_content。否则,即使没有在代码中指定移动方法,您提交的XML(使用我提到的更改)仍然适用于我。

当然,当EditText中的实际文本行数大于androidText属性中指定的行数时,将出现滚动条。

3

请参阅本link

EditText dwEdit = (EditText) findViewById(R.id.DwEdit);  
dwEdit.setOnTouchListener(new OnTouchListener() { 

      public boolean onTouch(View view, MotionEvent event) { 
       // TODO Auto-generated method stub 
       if (view.getId() ==R.id.DwEdit) { 
        view.getParent().requestDisallowInterceptTouchEvent(true); 
        switch (event.getAction()&MotionEvent.ACTION_MASK){ 
        case MotionEvent.ACTION_UP: 
         view.getParent().requestDisallowInterceptTouchEvent(false); 
         break; 
        } 
       } 
       return false; 
      } 
     }); 
2

使用本:

为XML文件
android:maxLines="5" 

属性。然后滚动条属性将起作用。

3
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; 
     } 
    }); 
0

您的xml文件的使用:

android:maxLines="5" 
1
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; 
    } 
}); 
0
在XML文件中使用

机器人:MAXLINES = “5” 机器人:滚动条= “垂直”

并在.java文件中添加

edt_text.setMovementMethod(new ScrollingMovementMethod());