trotz padding all around kein padding unten

G

Gast2

Gast
Hallo,

ich habe folgenden View (siehe unten den Quellcode).
Dabei erwarte ich, dass um das gesamte Fenster ein grüner (android:background="@color/gruen") Rahmen (android:padding="10") ist.
Aber unten fehlt der (schließende) Rahmen.

WARUM? ???:L

Java:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:background="@color/gruen" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10"
        android:background="@color/hellgrau"
        android:orientation="vertical"
        android:padding="10" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/viel_text" />

   </LinearLayout>
</ScrollView>
 

schlingel

Gesperrter Benutzer
Und das wird gebuildet? Dimension-Angaben bestehen aus einem numerischen Wert und der dazugehörigen Einheit.

Wenn du einen grünen Rahmen möchtest, mach dir doch einfach eine passende Shape und verwende die als Background für dein LinearLayout. Rein inhaltlich macht mir das nämlich Kopfzerbrechen dass du von einer ViewGroup die darauf ausgelegt ist, nur so viel zu wachsen wie absolut notwendig (ScrollView), weiter zu wachsen.

Könnte sein, dass du hier einen Bug aufgedeckt hast der sich aber mit schönerem Code umschiffen lässt.
 
G

Gast2

Gast
Und das wird gebuildet? Dimension-Angaben bestehen aus einem numerischen Wert und der dazugehörigen Einheit.
In echt steht bei mir android:layout_margin="@dimen/margin_all_around". Um es schneller lesbar zu machen dachte ich ersetze ich den Verweis durch eine Zahl und habe die Einheit vergessen.

Wenn du einen grünen Rahmen möchtest, mach dir doch einfach eine passende Shape und verwende die als Background für dein LinearLayout.
Danke für den Hinweis auf die Shapes, die habe ich noch nie beachtet und ich habe mich damit ausprobiert. Aber leider ist es mir leider nicht ganz so gelungen meinen Rand damit zu erstellen.

Ich habe jetzt immer einen Rand um den angezeigten Inhalt,
also auch wenn sich die Seite noch weiter nach unten scrollen lässt,
erscheint unten bereits ein schließender Rahmen.
So könnte der User auf den falschen Gedanken kommen,
dass es nicht weiter herunter zu scrollen geht, also da nicht weiter wäre.

Auf jeden Fall sieht es schon etwas besser aus,
nicht so sehr nach einen Programmierfehler.

Gäbe es noch eine andere Lösung?
shape.xml:
[XML]<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android" >
<solid
android:color="@color/gruen" />
<padding android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>[/XML]

layout.xml
[XML]<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/shape" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/hellgrau"
android:eek:rientation="vertical"
android:padding="@dimen/margin_all_around" >

<TextView...[/XML]
 

Neue Themen


Oben