Android Layout Problem mit fill_parent

Swoop

Gesperrter Benutzer
Hallo,

ich hab ein Problem mit dem Layout in Android. Und zwar würde ich gerne einen Spinner (mit fester Höhe) dann einen Webview, der den Platz nehmen soll, welcher noch übriig bleibt und am schluss soll dann noch eine Progressbar angezeigt werden.

Allerdings fehlt mir jetzt irgendwie einen Möglichkeit, dass die ProgressBar dargestellt wird, ohne damit der Platz des Webviews berechnet werden muss.

Hier mal meine XML:

[XML]<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android😱rientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="#000000">
<ImageView android:id="@+id/logo" android:layout_width="fill_parent"
android:layout_height="20dip" android:src="@drawable/qtvx_logo"
android:gravity="center" android:background="@drawable/mygradient"
android:layout_marginRight="4px" android:layout_marginLeft="3px" />
<Spinner android:id="@+id/spinner" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<WebView android:id="@+id/webview" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_marginTop="-4px"
android:layout_marginRight="4px" android:layout_marginLeft="3px"
android:layout_marginBottom="4px" />
<ProgressBar android:indeterminate="false"
style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent"
android😛rogress="50" android😛rogressDrawable="@drawable/progress_style"
android:layout_height="10dip" android:id="@+id/progressbar"
android:layout_marginRight="4px" android:layout_marginLeft="3px"
android:layout_marginBottom="4px" android:layout_marginTop="-4px" />
</LinearLayout>
[/XML]

Mir ist klar dass es momentan an dem Fill_Parent liegt. aber ich würde gerne wissen, obs da ne einfache Möglichkeit gibt?

Grüße und Danke Swoop
 
2 Möglichkeiten sehe ich da:

Entweder du arbeitest mit einem TableLayout über dass du Verhältnisse verwenden kannst oder du verwendest wrapcontent für deine Webview.

Aber ich schätze du möchtest den ganzen Bildschirm ausfüllen und dabei die Webview als dynamisch wachsendes Element haben mit einem Element darunter mit fester Höhe. Also fährst du mit dem TabeLayout besser als mit dem LinearLayout.
 
Soo jetzt hab ich das TableLayout eingebaut. Allerdings zeigt er meinen WebView jetzt nicht mehr über die komplette Zeile -.-

[XML]<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:stretchColumns="0">
<TableRow>
<ImageView android:id="@+id/logo" android:layout_width="fill_parent"
android:layout_height="20dip" android:src="@drawable/qtvx_logo"
android:gravity="center" android:background="@drawable/mygradient"
android:layout_marginRight="4px" android:layout_marginLeft="3px" />
</TableRow>
<TableRow>
<Spinner android:id="@+id/spinner" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</TableRow>
<TableRow android:layout_height="fill_parent">
<WebView android:id="@+id/webview" android:layout_marginTop="-4px"
android:layout_marginRight="4px" android:layout_marginLeft="3px"
android:layout_marginBottom="4px" />
</TableRow>
<TableRow>
<ProgressBar android:indeterminate="false"
style="?android:attr/progressBarStyleHorizontal" android😛rogress="100"
android😛rogressDrawable="@drawable/progress_style"
android:layout_height="5dip" android:id="@+id/progressbar"
android:layout_marginRight="4px" android:layout_marginLeft="3px"
android:layout_marginBottom="4px" />
</TableRow>
</TableLayout>[/XML]

Hier gehts zu nem Bild!


Edit:

Ich habe es mit einem RelativeLayout lösen können ...
 
Zuletzt bearbeitet:
Hallo,

da hab ich mich etwas vertan. Habe mich gerade selbst ein wenig mit der Aufgabenstellung gespielt und bin zu folgender Lösung gekommen:

[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">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android😱rientation="vertical">
<LinearLayout android:layout_height="75px"
android:layout_width="fill_parent"
android:background="#336699" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="#FF0000" />
<LinearLayout android:layout_height="75px"
android:layout_width="fill_parent"
android:background="#00FF00" />
</LinearLayout>
</ScrollView>
[/xml]

Wichtig ist dabei, das android:fillViewport="true" der ScrollView und das android:layout_weight="1" des wachsenden Controls.

Wie das ganze auf meinem HTC Wildfire aussieht hab ich dir als Bild angehängt.
 

Anhänge

  • device_screenshot.png
    device_screenshot.png
    4,7 KB · Aufrufe: 38
Hm okay danke... also ich habe es gerade mit einem RelativeLayout lösen können... Allerdings wär mir deine Lösung lieber gewesen... aber naja jetzt hab ich es schon geändert...

Aber für die Zukunft ist es auf jeden Fall eine Interessante herangehensweise
 

Neue Themen


Zurück
Oben