2012-08-30 62 views
3

這裏只是一個簡單的問題。我有一個滾動視圖內的edittext。這是我關於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> 

現在我在做什麼是使它滾動和不可編輯的EditText,因爲我對我的分貝feching其文本。 我嘗試使用此代碼

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

我曾經在此基礎上鍊接 how to enable vertical scrollbar of an edittext programmatically How to make edittext in Android scrollable? 的代碼,但它不是工作

回答

1

爲此使用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> 
+0

我可以使用,即使我有我的所有工具,滾動型的相應的Java文件?我的背景怎麼樣,我可以在我的scrollview上指定它? – Janwel

+0

你已經在佈局中有一個滾動視圖?如果是,那麼你不能使用另一個滾動視圖,但有一個解決方法。是的,你可以使用背景屬性。 – XepterX

+0

是的先生我有一個scrollview整個佈局 – Janwel

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"); 
+0

我不能先佈局給我,它應該是300dp – Janwel

+0

你可以使它300dp ...它會工作..我告訴你,因爲如果情況下內容少,使滾動出現。我修改了答案。 –

0

當你把etConditionBody.setMaxLines(8);它總是會告訴你只有8行,因爲它覆蓋layout_height參數。刪除setMaxLines並最小化layout_height。它會滾動然後。

0

更新下面的代碼

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