2014-02-05 6 views
0

Я новичок, работающий над своим первым приложением. Я хочу иметь страницу с изображениями сверху и снизу и большой блок текста между ними. Я хочу, чтобы все прокручивалось по вертикали. Независимо от того, что я пытаюсь, эмулятор останавливает приложение, когда я обращаюсь к странице.Прокрутка страницы с изображением/текстом/изображением

<?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> 

Любая помощь была бы принята с благодарностью.

С наилучшими пожеланиями, Ян

EDIT: Ошибки в моем журнале:

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

Сообщите свое мнение об ошибке. – 2Dee

+0

Не могли бы вы рассказать нам, получаете ли вы что-либо в представлении LogCat. Если мы сможем больше узнать о вашей ошибке, мы можем помочь больше. – GrouchyPanda

ответ

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> 

Вот пример снимок экрана:

enter image description here

Далее, вам нужно ваш контроллер просмотра, известный в мире Android как фрагмент. Среди других методов жизненного цикла Фрагменты обычно должны переопределять onCreateView (надувной элемент LayoutInflater, контейнер 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; 
} 

После того, как вы внедрили вышеуказанный код, вы должны, по крайней мере, увидеть изображения и текст.

+0

Извините, что не отвечал раньше. Это сделало работу! Большое вам спасибо за помощь. Я действительно ценю это, поскольку я застрял в этом пункте в течение нескольких дней. – user3277432

+0

Добро пожаловать! Рад помочь. Кроме того, если мой ответ оказался правильным, отметьте его как принятый. Благодаря! –

Смежные вопросы