2013-10-03 9 views
5

Ich habe ein vertikales lineares Layout, das sich nicht über eine bestimmte Grenze hinaus erstreckt.Hat LinearLayout eine maximale Höhe?

Dies ist das Layout mit centerCrop in der Imageview http://tinypic.com/r/20nm6s/5

Dies ist das Layout ohne Ernte Satz ist (so sollte es in voller Breite und riesig sein) http://tinypic.com/r/vzk7kw/5

So mein Gedanke ist, dass es einige implizite maximale Höhe, die ich nicht in meinem Layout sehe, aber ich kann nicht sehen, wo es ist, können Sie meinen Fehler erkennen?

<?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="wrap_content" 
      > 
    <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:background="@drawable/dropshadow" 
      > 
     <TextView 
       android:id="@+id/heading" 
       android:layout_gravity="center" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="5dp" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       /> 
     <ImageView 
      android:id="@+id/featuredimage" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:adjustViewBounds="true" 
      android:maxHeight="1000dp" 
      android:scaleType="centerCrop" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      /> 
    </LinearLayout> 
</RelativeLayout> 
+0

Es gibt keinen Grund, das LinearLayout in Ihrem geposteten Code zu verwenden. Sie können dies mithilfe des relativen Layouts erreichen. – dcanh121

+0

Was sind die tatsächlichen Pixelmaße des Bildes? Können Sie den Code posten, der das Bild lädt und setzt? –

+0

Ich habe eine Lösung gefunden, um "maxHeight" zu "ScrollView" zu liefern. Diese Lösung kann auch für jede Art von Ansicht verwendet werden. Bitte lesen Sie mehr unter http://chintanrathod.com/maxheightscrollview-in-android-using-android-studio/ –

Antwort

2

Die "implizite" maximale Höhe des Layouts ist die Höhe des übergeordneten Elements. Da Sie in beiden Layouts wrap_content verwenden, bedeutet dies, dass das übergeordnete Element effektiv der Bildschirmbereich ist, minus alle anderen Ansichten, die Sie verwenden (wie die TextView). Wenn Sie es nicht in einem scrollenden Container wie ScrollView platzieren, wird es die Größe des Bildschirms nie überschreiten.

Der Grund Ihre ImageView nicht „volle Breite und große“ zeigt, wenn Sie die Ernte entfernen ist, weil der Standard scaleType für ein ImageViewfitCenter ist. Diese bestimmte Ansicht wird durch die Breite des Layouts begrenzt, so dass das Bild verkleinert wird, während das Seitenverhältnis beibehalten wird.

+1

Auch die LinearLayout im RelativeLayout für das, was Sie haben, ist verschwenderisch. Platzieren Sie das XMLNS-Tag auf dem LinearLayout, und entfernen Sie das RelativeLayout. – David

+1

Sie könnten auch die lineare entfernen und Relative mit entsprechenden Attributen verwenden, aber Linear wäre einfacher. Wie auch immer, du brauchst definitiv nicht beide. – Geobits

Verwandte Themen