TextView滚动问题

时间:2010-10-06 03:59:23

标签: android scroll textview

斐伊川

我正在编写一个显示正在运行的进程列表的应用程序,我正在使用TextView在屏幕上显示正在运行的进程。 我正在尝试使用2种不同的方法来显示TextView。 在一种方法中,我在代码本身中删除了TextView

TextView tv = new TextView(this);
this.setContentView(tv);

在第二种方法中,我在main.xml文件中删除了布局

setContentView(R.layout.main);
TextView tv=(TextView) findViewById(R.id.RunApp);

对于我使用setMovementMethod进行我的TextView滚动运动的两种方法

tv.setMovementMethod(new ScrollingMovementMethod()); 

程序在模拟器中正常运行。但是如果我使用第二种方法,那么如果我在移动设备上运行应用程序,则不会发生滚动。在模拟器中它的工作正常。为什么我的Android 2.1三星Galaxy S的表现有所不同? 为什么在第二种方法中没有发生滚动?滚动是在第一种方法中发生的,我的手机没有任何问题。

这是我的代码..

public class listRunningApps extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);
    //TextView tv=(TextView) findViewById(R.id.RunApp);

    TextView tv = new TextView(this);
    this.setContentView(tv);

    tv.setMovementMethod(new ScrollingMovementMethod()); 

    ActivityManager actvityManager = (ActivityManager)
               this.getSystemService( ACTIVITY_SERVICE );
    List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();

    for(int j=0; j < 2; j++) 
/*I have done iteration 2 times so that we have a long process list 
    sufficeint enough for scrolling*/
        {
        for(int i = 0; i < procInfos.size(); i++)
            {
                tv.setText(tv.getText().toString()+procInfos.get(i).processName+
                    " " + String.valueOf(procInfos.get(i).processName.length())+"\n");
            }

    tv.setText(tv.getText().toString()+"----------------------------"+"\n");
        }
     }
}

这是我的main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TextView
        android:id="@+id/jsttxt"  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Testing TextView Scrolling"/>

<TextView
    android:id="@+id/RunApp"
    android:layout_marginLeft="30px"
    android:layout_marginRight="30px"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/jsttxt"
    />

</RelativeLayout>

在第一种方法中,滚动进入我的手机没有任何问题。你们可以帮助我为什么滚动没有发生在我的手机中的第二种方法,其中它在我的模拟器中正常工作?

2 个答案:

答案 0 :(得分:1)

为什么不在xml布局中将textview放在scrollview中。尝试我认为它的工作

答案 1 :(得分:0)

我已根据ud_an

的建议使用scrollview修改了main.xml
<?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">


<TextView
    android:id="@+id/jsttxt"  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Testing TextView Scrolling"/>

<ScrollView android:layout_width="wrap_content"
   android:layout_height="wrap_content">

<TextView
    android:id="@+id/RunApp"
    android:layout_marginLeft="30px"
    android:layout_marginRight="30px"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/jsttxt"
    />
</ScrollView>
</RelativeLayout>

现在滚动也在使用第二种方法..感谢ud_an

但是为什么模拟器和我的手机在之前的情况下无动于衷地在模拟器中滚动并且在移动设备中没有滚动???