2013-01-21 32 views
16

我發現使用垂直滾動文本設置文本視圖很困難。在我的對話框中,我有一個帶有大文本的文本視圖,因爲對話框很小,我希望textview文本可以垂直滾動,以便對話框看起來不錯。下面是我的XMLAndroid:使用垂直滾動文本的文本視圖

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#FFFFFF" > 

    <ImageView 
     android:id="@+id/fbcancel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:src="@drawable/fbcancel" /> 

    <EditText 
     android:id="@+id/fbedittext" 
     android:layout_width="230dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/imageView1" 
     android:layout_marginLeft="5dp" 
     android:layout_marginTop="33dp" 
     android:background="@drawable/roundcorners" 
     android:ems="10" 
     android:gravity="center" 
     android:hint="@string/fbhint" 
     android:lines="6" 
     android:paddingRight="5dp" 
     android:scrollHorizontally="true" /> 
    <RelativeLayout 
     android:id="@+id/relativeLayout1" 
     android:layout_width="80dp" 
     android:layout_height="250dp" 
     android:layout_alignParentRight="true" 
     android:layout_toRightOf="@+id/fbedittext" > 

     <Spinner 
      android:id="@+id/spinner" 
      android:layout_width="50dp" 
      android:layout_height="30dp" 
      android:layout_alignLeft="@+id/fbshare" 
      android:layout_alignRight="@+id/fbshare" 
      android:layout_below="@+id/fbshare" 
      android:layout_marginTop="16dp" 
      android:drawSelectorOnTop="true" 
      android:entries="@array/fblist" 

      android:visibility="gone"/> 

     <ImageView 
      android:id="@+id/fbpeople" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/fbshare" 
      android:layout_alignRight="@+id/fbshare" 
      android:layout_below="@+id/fbshare" 
      android:layout_marginTop="16dp" 
      android:background="@drawable/people" 
      android:drawSelectorOnTop="true" /> 

     <ImageView 
      android:id="@+id/fbshare" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="65dp" 
      android:src="@drawable/newfb" /> 
    </RelativeLayout> 



<ScrollView android:id="@+id/textAreaScroller" 
    android:layout_width="fill_parent" 
     android:layout_height="173px" 
     android:layout_x="0px" 
     android:layout_y="25px" 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/fbedittext" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/fbedittext" 
     android:layout_marginTop="22dp" 
     android:lines="7" 
     android:scrollbars="vertical" 
     android:text="@string/fbtext" /> 
</ScrollView> 
    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/fbcancel" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:paddingRight="2dp" 
     android:src="@drawable/askabud" /> 

</RelativeLayout> 

我試圖把滾動視圖,但TextView的位置錯誤是怎麼回事。任何幫助表示讚賞。

+1

「但在TextView的位置wrog會」 裏面把以下屬性?你能解釋一下嗎? –

+0

你可以把截圖與預期的大綱一起。 – satheesh

+5

請參閱:http://stackoverflow.com/questions/1748977/making-textview-scrollable-in-android –

回答

71

1給出通過XML

<ScrollView android:id="@+id/textAreaScroller" 
    android:layout_width="fill_parent" 
    android:layout_height="173px" 
    android:layout_x="0px" 
    android:layout_y="25px" 
    android:scrollbars="vertical"> 
<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/fbedittext" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/fbedittext" 
    android:layout_marginTop="22dp" 
    android:lines="7"   
    android:text="@string/fbtext" /> 
</ScrollView> 

2.Via代碼

ScrollView scroller = new ScrollView(this); 
TextView tv=(TextView)findViewById(R.id.textView1); 
scroller.addView(tv); 

OR

<TextView>

android:scrollbars = "vertical" 

在代碼

tv.setMovementMethod(new ScrollingMovementMethod()); 
+4

不需要滾動視圖。請參閱:http://stackoverflow.com/questions/1748977/making-textview-scrollable-in-android –

+0

http://stackoverflow.com/a/3256305/1318946 –

-1

在你的ScrollView中給出一個RelativeLayout,並且在RelativeLayout裏面放置你的TextView。

+0

如果只有其中的textview,則不需要中間的RelativeLayout。添加不必要的層可能會帶來性能問題只有ScrollView裏面的TextView應該適用。 –

2

嘗試在TextView中設置最大高度,它可能爲你工作,像下面

<TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="100dip" // change dip accordingly 
     android:layout_alignLeft="@+id/fbedittext" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/fbedittext" 
     android:layout_marginTop="22dp" 
     android:lines="7" 
     android:scrollbars="vertical" 
     android:text="@string/fbtext" />