2010-12-15 17 views
2

Ich habe eine ScrollView/RelativeLayout/FrameLayout und ich innen programmatisch einige Widgets. HierScrollView scrollt nicht?

ist die gui xml:

<?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:fillViewport="true" 
android:background="@drawable/fond_app"> 
    <RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    > 
    <TextView 
    android:id="@+id/titreAppli" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="My Big Application" 
    android:textStyle="bold" 
    android:textColor="#9b9b71" 
    android:textSize="15dp" 
    /> 
    <FrameLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/out" 
    android:layout_below="@id/titreAppli" 
    /> 
    </RelativeLayout> 
</ScrollView> 

Im FrameLayout, lege ich programaticaly andere RelativeLayout und andere Widgets im Inneren.

Mit einigen Widgets (Text, Bild, Schaltflächen) kann ich nicht scrollen. Mit anderen (eine lineare Liste mit Text) kann ich scrollen.

Warum? Gibt es eine Lösung?

Danke.

+0

könnte eine dumme Frage sein (ich programmiere hauptsächlich in opengl auf Android), aber gibt es genug zu scrollen? (Ich meine, ist Ihre innere Ansicht groß genug, um scrollen zu müssen) –

+0

Ja, ich denke, weil ich einige Widgets über die Unterseite des Fensters. – Istao

Antwort

3

Haben Sie es ohne die android:fillViewport="true" versucht?

+0

Es ist Arbeit! Planty viel Dank! Aber warum ? – Istao

+0

Ja, es mag selbst nach dem Lesen der Originaldokumentation nicht so offensichtlich erscheinen - http://developer.android.com/intl/zh-CN/reference/android/widget/ScrollView.html#setFillViewport%28boolean%29. –

+0

Ich habe LinearLayout nicht innerhalb von scrollview verwendet (weil ich aus Gründen eine Erweiterungsklasse von ViewGroup verwendet habe) und ich kann auch nicht blättern, warum? –

4

Zuerst das Rahmenlayout entfernen. Sie sollten ein anderes Layout wie relativ anstelle von framelayout verwenden. Da Framelayout nicht erweitert wird, funktioniert die Scroll-Ansicht nicht. Wenn Sie linear oder relativ verwenden, werden sie erweitert und Sie können blättern.

+0

Danke. Leider funktioniert es nicht für mich: Wenn ich FrameLayout durch RelativeLayout ersetze, sehe ich dasselbe: Kein Scroll auf einer Ansicht, die aus dem Fenster herausragt. – Istao

Verwandte Themen