问题描述
- 如何只让一个 textview 滚动而不是在整个布局中?
-
我在 xml 布局中创建了几个布局,在这些布局中有一个 textview,包含一个大的文本。我想问的是如何只设置textview 垂直滚动,而不是整个布局。
xml 布局:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/inner_content" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg" android:orientation="vertical" > <RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="fill_parent" android:layout_height="45dip" android:background="@drawable/header" android:paddingLeft="2dip" android:paddingRight="2dip" > <Button android:id="@+id/sample_button" style="@android:style/Widget.Button.Small" android:layout_width="35dip" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginRight="10dip" android:background="@drawable/burger" /> <ImageView android:id="@+id/imageView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:src="@drawable/home_button" /> <TextView android:id="@+id/breakARTISTNAME" android:layout_width="150dp" android:layout_height="150dp" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#FFFFFF" /> </RelativeLayout> <RelativeLayout android:layout_width="250dp" android:layout_height="374dp" android:layout_marginBottom="6dp" android:layout_marginLeft="35dp" android:layout_marginTop="20dp" android:background="#C71585" > <RelativeLayout android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginTop="25dp" android:background="@drawable/add_schedule_bg" android:orientation="vertical" > <ImageView android:id="@+id/imageButton1" android:layout_width="40dp" android:layout_height="40dp" android:paddingTop="3dp" android:src="@drawable/add_button" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_toRightOf="@+id/imageButton1" android:paddingLeft="10dp" android:text="add to my schedual" android:textColor="#FFFFFF" /> </RelativeLayout> <ImageView android:id="@+id/breakARTISTIMAGE" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentLeft="true" android:layout_below="@+id/linearLayout1" android:layout_marginTop="14dp" android:src="@drawable/ic_launcher" /> //here is the text i need only to be scrollalbe <TextView android:id="@+id/breakARTISTDESCRIPTION" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/breakARTISTIMAGE" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#FFFFFF" /> <ImageView android:id="@+id/breakARTISTIMAGE2" android:layout_width="100dp" android:layout_height="100dp" android:layout_above="@+id/breakARTISTDESCRIPTION" android:layout_alignParentRight="true" android:src="@drawable/ic_launcher" /> </RelativeLayout>
解决方案
试用下下面的方法:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/inner_content"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="45dip"
android:background="@drawable/header"
android:paddingLeft="2dip"
android:paddingRight="2dip" >
<Button
android:id="@+id/sample_button"
style="@android:style/Widget.Button.Small"
android:layout_width="35dip"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dip"
android:background="@drawable/burger" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/home_button" />
<TextView
android:id="@+id/breakARTISTNAME"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#FFFFFF" />
</RelativeLayout>
<RelativeLayout
android:layout_width="250dp"
android:layout_height="374dp"
android:layout_marginBottom="6dp"
android:layout_marginLeft="35dp"
android:layout_marginTop="20dp"
android:background="#C71585">
<RelativeLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="25dp"
android:background="@drawable/add_schedule_bg"
android:orientation="vertical">
<ImageView
android:id="@+id/imageButton1"
android:layout_width="40dp"
android:layout_height="40dp"
android:paddingTop="3dp"
android:src="@drawable/add_button" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/imageButton1"
android:paddingLeft="10dp"
android:text="add to my schedual"
android:textColor="#FFFFFF" />
</RelativeLayout>
<ImageView
android:id="@+id/breakARTISTIMAGE"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout1"
android:layout_marginTop="14dp"
android:src="@drawable/ic_launcher"/>
<ScrollView
android:id="@+id/breakSCROLLVIEW"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_below="@+id/breakARTISTIMAGE">
<TextView
android:id="@+id/breakARTISTDESCRIPTION"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#FFFFFF"/>
</ScrollView>
<ImageView
android:id="@+id/breakARTISTIMAGE2"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_above="@+id/breakSCROLLVIEW"
android:layout_alignParentRight="true"
android:src="@drawable/ic_launcher"/>
</RelativeLayout>
</LinearLayout>
解决方案二:
textView.setMovementMethod(ScrollingMovementMethod.getInstance());
当然textview要限高
解决方案三:
也可以在TextView外面套一个ScrollView 设置垂直滚动条
解决方案四:
在布局那里把TextView换成ViewFlipper,然后在代码里再把TextView添加到ViewFlipper,好好学习一下ViewFlipper的用法。
时间: 2024-10-05 16:08:10