ScrollView中的Android TextView不工作-强制关闭
我正在尝试创建一个能够滚动大量文本的文本视图。我将它嵌套在scrollview中,在尝试测试它时,我的手机和平板电脑会被强制关闭。当我在没有scrollview的情况下运行时,它会工作,但显然不会滚动。以下是我的XML文件中关于布局的内容:ScrollView中的Android TextView不工作-强制关闭,android,textview,scrollview,forceclose,Android,Textview,Scrollview,Forceclose,我正在尝试创建一个能够滚动大量文本的文本视图。我将它嵌套在scrollview中,在尝试测试它时,我的手机和平板电脑会被强制关闭。当我在没有scrollview的情况下运行时,它会工作,但显然不会滚动。以下是我的XML文件中关于布局的内容: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:la
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:scrollbars="horizontal" android:isScrollContainer="true">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tutView">
</TextView>
</LinearLayout>
</ScrollView>
编辑2:为有问题的错误添加了我的onCreate。这将获取主视图列表中触摸到的项目,并在文本视图中显示更多信息
public class TutViewerActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.textview);
Intent launchingIntent = getIntent();
String content = launchingIntent.getData().toString();
TextView viewer = (TextView) findViewById(R.id.tutView);
viewer.setMovementMethod(new ScrollingMovementMethod());
viewer.setText(Html.fromHtml(content));
setContentView(viewer);
}
}
异常告诉您
非法状态异常:指定的子级已经有父级。您必须首先对子级的父级调用removeView()
这意味着您尝试将一个已经有父视图的视图放在另一个视图中
确保不要setContentView(R.id.tutView)
或类似的内容
如果布局xml的名称是main.xml
,那么正确的做法是setContentView(R.layout.main)
编辑
你为什么写这行<代码>设置内容视图(查看器)代码>这就是问题所在
您已经将其父视图设置为内容视图,将其删除即可。如果多行
TextView
包含的文本超过其显示范围,则该视图将滚动。当日志强制关闭时,日志会显示什么内容?您知道。。。强制关闭意味着错误。。那么logcat输出在哪里呢?为大家添加了logcat。我还尝试了使用多行输入类型的android:inputType
,并且没有滚动,只是在尝试滚动时使屏幕变暗了一点…@Rekar是的,错误在onCreate中,而不是在XML中。它甚至告诉你在rg.ah.TutViewerActivity.onCreate(TutViewerActivity.java:25所以第25行。我是Rotemmiz的,可能是你的setContentView()Sry这花了我很长时间。我添加了未经编辑的代码供您查看。我所做的不是将textview放入scrollview,而是将其保持在顶层,并添加了setMovementMethod
代码以允许文本作为临时修复程序滚动。我仍然对修复以前的代码非常感兴趣。
public class TutViewerActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.textview);
Intent launchingIntent = getIntent();
String content = launchingIntent.getData().toString();
TextView viewer = (TextView) findViewById(R.id.tutView);
viewer.setMovementMethod(new ScrollingMovementMethod());
viewer.setText(Html.fromHtml(content));
setContentView(viewer);
}
}