Frage

Ich habe ein Bild in den 3 Ordnern res/Drawable-HDPI/MDPI/LDPI 600*600 als Auflösung) und ich habe diese XML-Datei, um eine Textansicht und das Bild anzuzeigen:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/sipLabel"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  />
  <ImageView android:id="@+id/connected" android:src="@drawable/connected" android:layout_below="@id/sipLabel" 
  android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_weight="0.35" android:gravity="center" 
         />
        </LinearLayout>

Was könnte BR das Problem? Danke für Ihre Hilfe.

War es hilfreich?

Lösung

Das Hauptproblem ist Ihr erster Tag in der LinearLayout:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/sipLabel"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  />

Seit layout_height ist eingestellt auf fill_parent Diese Textansicht füllt die Linearlayout vertikal und lässt keinen Raum für das Bild. Versuchen Sie zu wechseln layout_height zu wrap_content.

Auch ein paar andere Dinge:

  • Sie verwenden android:layout_below="@id/sipLabel", aber das funktioniert nur in einem RelATivalout. Dieses Attribut wird also stillschweigend ignoriert.
  • Während Sie alle auswählen können layout_weight Sie wollen, 0.35 ist ziemlich willkürlich. Da es das einzige Kind im Linearlayout mit Gewicht ist, erhält es den gesamten zusätzlichen vertikalen Raum.
  • Sie müssen die nicht einbeziehen xmlns:android="http://schemas.android.com/apk/res/android" Auf Ihrem TextView -Tag.

Andere Tipps

Ich finde layout_below gilt nur für Relativalayouts. Auch dass layout_weight="0.35" Sieht mächtig verdächtig aus, ich denke nicht, dass es das bedeutet, was Sie denken, dass es bedeutet. Ich denke, es muss einen ganzzahligen Wert haben.

Da dein TextView hat eine Höhe von fill-parent, und die LinearLayout scrollt nicht ScrollView Sie können die unteren Teile nicht sehen), Ihre TextView nimmt den gesamten Bildschirm der Aktivität und die an ImageView Darunter ist nicht sichtbar.

So können Sie entweder

  • Setzen Sie Ihr Ganze LinearLayout in einScrollView, und scrollen Sie nach unten, um Ihr Bild zu sehen oder
  • Wenn Ihr Ziel es ist, das Bild am unteren Rand des Bildschirms anzuzeigen, und der gesamte Ort darüber ist das angenommen werden TextView, Dann wäre ein RelATivalout die beste Option.

Aktualisieren
ein Arbeiten RelativeLayout Soulution wäre sein

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <TextView android:id="@+id/sipLabel" android:text="@string/loremipsum1"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_alignParentTop="true" />
    <ImageView android:id="@+id/connected" android:src="@drawable/connected"
        android:layout_width="wrap_content" android:layout_height="wrap_content" 
        android:layout_below="@id/sipLabel" android:layout_alignParentBottom="true" />
</RelativeLayout>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top