3

这里只是一个简单的问题。我在滚动视图中有一个edittext。这是我关于edittext的代码

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
 >

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="899dp" >

<LinearLayout
    android:id="@+id/LL1"
    android:layout_width="match_parent"
    android:layout_height="320dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="50dp"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/ivMainPic"
        android:layout_width="match_parent"
        android:layout_height="320dp"
         />

</LinearLayout>

<TextView
    android:id="@+id/tvDescription"
    android:layout_width="match_parent"
    android:layout_height="50dip"
    android:layout_below="@+id/LL1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="25dp"
    android:text="@string/strDescription"
    android:textSize="14dp" 
    android:layout_marginLeft="30dip"
    android:layout_marginRight="30dip"/>

<TextView
    android:id="@+id/tvCondition"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/tvDescription"
    android:layout_marginTop="20dp"
    android:layout_marginLeft="20dip"
    android:text="@string/strCondition"
    android:textStyle="bold"
    android:textAppearance="?android:attr/textAppearanceMedium" />



<Button
    android:id="@+id/btnGetOffer"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="match_parent"
    android:layout_height="40dip"
    android:layout_below="@+id/etConditionBody"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="18dp"
    android:text="@string/strGetOffer"
    android:layout_marginLeft="20dip"
    android:layout_marginRight="20dip" 
    android:background="@drawable/roundedcorner"
    android:textStyle="bold" />

<TextView
    android:id="@+id/etConditionBody"
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:layout_below="@+id/tvCondition"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="26dp" 
    android:layout_marginLeft="20dip"
    android:layout_marginRight="20dip"
    android:gravity="top"
    android:paddingBottom="20dip"
    android:paddingLeft="20dip"
    android:paddingRight="20dip"
    android:paddingTop="20dip"
    android:scrollbars="vertical" 
    android:background="@drawable/edittextborder"/>

</RelativeLayout>
</ScrollView>

现在我正在做的是让它可滚动和不可编辑的编辑文本,因为我正在我的数据库中获取它的文本。我尝试使用此代码

etConditionBody= (EditText) findViewById(R.id.etConditionBody);
etConditionBody.setScroller(new Scroller(getBaseContext())); 
etConditionBody.setMaxLines(8); 
etConditionBody.setVerticalScrollBarEnabled(true); 
etConditionBody.setMovementMethod(new ScrollingMovementMethod());
etConditionBody.setText("wew \n wew2 \n wew3 \n wew4 \n wew \n wew2 \n wew3 \n wew4 \n wew \n wew2 \n wew3 \n wew4 \n wew3 \n wew4 \n wew \n wew2 \n wew3 \n taena");

但它没有滚动,它只是将我的行限制为 8

我使用基于此链接的代码 如何以编程方式启用edittext的垂直滚动条 如何使Android中的edittext可滚动? 但它不工作

4

4 回答 4

3

为此,请使用 TextView 而不是 edittext。您可以使用滚动视图进行滚动,例如

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="300dp">

<TextView
    android:id="@+id/tvConditionBody"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
/>

</ScrollView>
于 2012-08-30T09:14:12.900 回答
0

而不是指定最大线,减少你的 EditTextHeight。

例如:

布局 :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<EditText
    android:id="@+id/etConditionBody"
    android:layout_width="fill_parent"
    android:layout_height="300dp" >
</EditText>

</LinearLayout>

代码 :

etConditionBody = (EditText) findViewById(R.id.etConditionBody);
    etConditionBody.setScroller(new Scroller(getBaseContext()));
    etConditionBody.setVerticalScrollBarEnabled(true);
    etConditionBody.setMovementMethod(new ScrollingMovementMethod());
    etConditionBody
            .setText("wew \n wew2 \n wew3 \n wew4 \n wew \n wew2 \n wew3 \n wew4 \n wew \n wew2 \n wew3 \n wew4 \n wew3 \n wew4 \n wew \n wew2 \n wew3 \n taena");
于 2012-08-30T09:18:45.983 回答
0

正如您所说 etConditionBody.setMaxLines(8); ,它将始终只显示 8 行,因为它会覆盖 layout_height 参数。删除 setMaxLines 并最小化 layout_height。然后它会滚动。

于 2012-08-30T09:24:06.607 回答
0

使用以下代码更新相应的 java 文件

 EditText etText = (EditText) findViewById(R.id.etText);       
 dwEdit.setOnTouchListener(new OnTouchListener() {
       public boolean onTouch(View view, MotionEvent event) {

            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;
        }
    });
于 2016-11-09T07:47:21.660 回答