我是第一个应用程序的新手。我希望页面顶部和底部有一个图像,中间有一大块文本。我希望一切都垂直滚动。无论我尝试什么,当我访问页面时,模拟器都会停止应用程序。
<?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">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<ImageView
android:layout_margin="6dip"
android:id="@+id/Francis_Top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/fhpaint">
</ImageView>
</TableRow>
<TableRow>
<TextView
android:id="@+id/help_page_intro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:background="#2E2D2B"
android:textSize="18sp"
android:text="@string/francisinfo"
android:padding="2dip">
</TextView>
</TableRow>
<TableRow>
<ImageView
android:layout_margin="6dip"
android:id="@+id/Francis_Bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/fhp">
</ImageView>
</TableRow>
</TableLayout>
</RelativeLayout>
</Scrollview>
非常感谢任何帮助。
亲切的问候, 伊恩
编辑:我的日志错误:
02-05 18:44:24.391: I/Process(836): Sending signal. PID: 836 SIG: 9
02-05 18:44:32.041: D/gralloc_goldfish(1098): Emulator without GPU emulation detected.
02-05 18:44:32.151: D/dalvikvm(1098): GC_FOR_ALLOC freed 42K, 4% free 3213K/3332K, paused 45ms, total 49ms
02-05 18:44:32.201: D/dalvikvm(1098): GC_FOR_ALLOC freed 6K, 4% free 3572K/3692K, paused 36ms, total 36ms
02-05 18:44:32.321: I/Choreographer(1098): Skipped 61 frames! The application may be doing too much work on its main thread.
02-05 18:44:37.911: D/dalvikvm(1098): GC_FOR_ALLOC freed 483K, 16% free 3234K/3812K, paused 106ms, total 121ms
02-05 18:44:37.971: I/dalvikvm-heap(1098): Grow heap (frag case) to 4.503MB for 1334776-byte allocation
02-05 18:44:38.311: D/dalvikvm(1098): GC_FOR_ALLOC freed 11K, 12% free 4526K/5116K, paused 88ms, total 89ms
02-05 18:44:38.471: D/dalvikvm(1098): GC_FOR_ALLOC freed <1K, 11% free 4585K/5116K, paused 114ms, total 116ms
02-05 18:44:38.471: I/dalvikvm-heap(1098): Grow heap (frag case) to 5.157MB for 635812-byte allocation
02-05 18:44:38.781: D/dalvikvm(1098): GC_FOR_ALLOC freed <1K, 10% free 5206K/5740K, paused 83ms, total 84ms
02-05 18:44:39.461: I/Choreographer(1098): Skipped 112 frames! The application may be doing too much work on its main thread.
02-05 18:44:40.741: I/Choreographer(1098): Skipped 108 frames! The application may be doing too much work on its main thread.
02-05 18:44:41.151: I/Choreographer(1098): Skipped 34 frames! The application may be doing too much work on its main thread.
02-05 18:44:45.811: D/AndroidRuntime(1098): Shutting down VM
02-05 18:44:45.811: W/dalvikvm(1098): threadid=1: thread exiting with uncaught exception (group=0xb3a4fba8)
02-05 18:44:45.981: E/AndroidRuntime(1098): FATAL EXCEPTION: main
02-05 18:44:45.981: E/AndroidRuntime(1098): Process: com.androidbook.ds1, PID: 1098
02-05 18:44:45.981: E/AndroidRuntime(1098): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androidbook.ds1/com.androidbook.ds1.QuizFrancisActivity}: android.view.InflateException: Binary XML file line #3: Error inflating class Scrollview
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.app.ActivityThread.access$800(ActivityThread.java:135)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.os.Handler.dispatchMessage(Handler.java:102)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.os.Looper.loop(Looper.java:136)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.app.ActivityThread.main(ActivityThread.java:5017)
02-05 18:44:45.981: E/AndroidRuntime(1098): at java.lang.reflect.Method.invokeNative(Native Method)
02-05 18:44:45.981: E/AndroidRuntime(1098): at java.lang.reflect.Method.invoke(Method.java:515)
02-05 18:44:45.981: E/AndroidRuntime(1098): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
02-05 18:44:45.981: E/AndroidRuntime(1098): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
02-05 18:44:45.981: E/AndroidRuntime(1098): at dalvik.system.NativeStart.main(Native Method)
02-05 18:44:45.981: E/AndroidRuntime(1098): Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class Scrollview
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
02-05 18:44:45.981: E/AndroidRuntime(1098): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.app.Activity.setContentView(Activity.java:1929)
02-05 18:44:45.981: E/AndroidRuntime(1098): at com.androidbook.ds1.QuizFrancisActivity.onCreate(QuizFrancisActivity.java:10)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.app.Activity.performCreate(Activity.java:5231)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-05 18:44:45.981: E/AndroidRuntime(1098): ... 11 more
02-05 18:44:45.981: E/AndroidRuntime(1098): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.Scrollview" on path: DexPathList[[zip file "/data/app/com.androidbook.ds1-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.androidbook.ds1-2, /system/lib]]
02-05 18:44:45.981: E/AndroidRuntime(1098): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
02-05 18:44:45.981: E/AndroidRuntime(1098): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
02-05 18:44:45.981: E/AndroidRuntime(1098): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.view.LayoutInflater.createView(LayoutInflater.java:559)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:652)
02-05 18:44:45.981: E/AndroidRuntime(1098): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
02-05 18:44:45.981: E/AndroidRuntime(1098): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
02-05 18:44:45.981: E/AndroidRuntime(1098): ... 20 more
感谢您快速回复!我希望这个日志有帮助。 伊恩
答案 0 :(得分:0)
首先要做的事情:我认为您可以使用LinearLayout大大简化布局:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/fhpaint"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:gravity="center"
android:text="@string/francisinfo"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/fhp"/>
</LinearLayout>
</ScrollView>
以下是一个屏幕截图示例:
接下来,您将需要您的视图控制器,在Android世界中称为片段。在其他生命周期方法中,Fragments通常需要覆盖onCreateView(LayoutInflater inflater,ViewGroup容器,Bundle savedInstanceState)以显示其视图。例如:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_layout, container, false);
... other code here ...
return v;
}
一旦你实现了上面的代码,你至少应该看到图像和文本。