Android如何在Edittext中设置ScrollBar?

时间:2011-07-02 08:42:28

标签: android

我是Android新手我想在Edittext中使用ScrollText并在角落显示滚动条。我使用

滚动文本
questionEntry.setScroller(new Scroller(myContext)); 
questionEntry.setMaxLines(1); 
questionEntry.setVerticalScrollBarEnabled(true); 
questionEntry.setMovementMethod(new ScrollingMovementMethod()); 

文本的scr0lling工作但ScrollBar没有得到Visible任何人都可以给我一个Sugesstion?

3 个答案:

答案 0 :(得分:20)

这可能会对你有帮助。

<EditText android:id="@+id/edt_task_disc" android:layout_width="wrap_content"
                      android:layout_height="wrap_content"  android:gravity="top"
                      android:background="@drawable/text_aerea" 
                      android:hint="Task Discription"
                      android:textSize="15sp" android:paddingLeft="5dp"
                      android:maxHeight="35dp"
                      android:scrollbars="vertical"
                      />

请将android:scrollbars="vertical"添加到编辑文本的xml代码中,它会正常工作。

答案 1 :(得分:6)

  

仅样品

     

在您的Java文件中

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

在您的Xml文件中......

<EditText
        android:id="@+id/DwEdit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="9"
        android:ems="10"
        android:gravity="top"
        android:imeOptions="flagNoExtractUi"

        android:minLines="10"
        android:scrollHorizontally="false"
        android:scrollbarAlwaysDrawVerticalTrack="true"
        android:scrollbarStyle="insideInset"
        android:scrollbars="vertical" 
        android:overScrollMode="always"
        android:inputType="textCapSentences">
        </EditText>

答案 2 :(得分:0)

我也检查了选项,但我认为

 android:scrollbars="vertical"

这是最好的,或者您可以通过定义多行来实现

android:inputType="textMultiLine"

或者您也可以通过

解决此问题
edittext.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {

            view.getParent().requestDisallowInterceptTouchEvent(true);
            switch (motionEvent.getAction() & MotionEvent.ACTION_MASK){
                case MotionEvent.ACTION_UP:
                    view.getParent().requestDisallowInterceptTouchEvent(false);
                    break;
            }

            return false;
       }

  });