2013-10-03 15 views
5

Mam pionową grę liniową, która nie będzie się rozciągać poza określony limit.Czy LinearLayout ma maksymalną wysokość?

Jest to układ z centerCrop w ImageView http://tinypic.com/r/20nm6s/5

Jest to układ bez zestawu upraw (tak powinno być pełną szerokość i ogromny) http://tinypic.com/r/vzk7kw/5

Więc moja myśl, że istnieje trochę ukrytej maksymalnej wysokości, której nie widzę w moim układzie, ale nie widzę, gdzie ona jest, czy zauważysz mój błąd?

<?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

Nie ma sensu używanie LinearLayout w opublikowanym kodzie. Możesz to osiągnąć za pomocą układu względnego. – dcanh121

+0

jakie są rzeczywiste wymiary obrazu w pikselach? Czy możesz opublikować kod, który ładuje i ustawia obraz? –

+0

Znalazłem rozwiązanie zapewniające 'maxHeight' do' ScrollView'. To rozwiązanie może być również używane do każdego widoku. Przeczytaj więcej na http://chintanrathod.com/maxheightscrollview-in-android-using-android-studio/ –

Odpowiedz

2

"Niejawna" maksymalna wysokość układu to wysokość jego obiektu nadrzędnego. Ponieważ używasz wrap_content w obu układach, oznacza to, że obiekt nadrzędny jest w obszarze ekranu, bez jakichkolwiek innych używanych widoków (takich jak TextView). Jeśli nie umieścisz go w przewijanym pojemniku, takim jak ScrollView, nigdy nie przekroczy on rozmiaru ekranu.

Powodem swoje ImageView nie pokazuje się „pełną szerokość i ogromne” po wyjęciu uprawę ponieważ domyślna scaleType dla ImageView jest fitCenter. Ten szczególny widok jest ograniczony przez szerokość szablonu szerokość, więc zmniejsza obraz przy zachowaniu proporcji.

+1

Ponadto, LinearLayout znajdujący się w RelativeLayout, ponieważ to, co masz, jest marnotrawstwem. Umieść znacznik XMLNS na LinearLayout i usuń RelativeLayout. – David

+1

Można również usunąć liniowy i użyć Względnego z odpowiednimi atrybutami, ale liniowy będzie prostszy. Tak czy inaczej, ty * zdecydowanie * nie potrzebujesz ich obu. – Geobits

Powiązane problemy