2015-12-14 13 views
5

Robię poziomy widok RecyclerView ze zdjęciami i mam do czynienia z problemem wrap_parent. Jeśli wstawię mój View width = wrap_content, będzie to szerokość w trybie szerokości ekranu, chociaż obraz zajmuje bardzo mało miejsca. Jeśli zmienię wartość wrap_content na pewną wartość, działa ona idealnie.RecyclerView ma 75dp wysokości i match_parent.Poziome urządzenie recyklingowe z Androidem wrap_content

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="75dp" 
    android:layout_height="wrap_content" 
    android:clickable="true" 
    android:foreground="@drawable/card_foreground"> 
    <ImageView 
     android:id="@+id/bitmap" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:contentDescription="@string/image" /> 
</LinearLayout> 

Screenshoot

Ciemnoniebieski jest ekran i jasnoniebieski to zdjęcie. Problem polega na tym, że mam 1 przypadek, gdy ustawiam widok na wrap_content.

ROZWIĄZANIE:

Mam rozwiązać ten problem niedawno, jest jakiś błąd lub coś simmilar, kiedy staram się mieć na skalowane ImageView wrap_parent. To nie działa bardzo dobrze. Aby rozwiązać ten problem, zmieniłem rozmiar każdego zdjęcia do ostatecznego rozmiaru przed umieszczeniem go w oknie RecyclerView. W Adition, mam znowu małą przestrzeń między ImageView i rozwiązałem, dodając padding=0 i margin=0 do potomka RecyclerView.

+0

Czego dokładnie chcesz? –

+0

używasz zbyt wielu skrótów w opisie; Dodaj co najmniej jeden zrzut ekranu, aby pokazać nam, jak to działa i jak powinien działać. – piotrek1543

+0

Chcę wrap_parent, chcę mieć zdjęcia w linii bez spacji między nimi. –

Odpowiedz

0
  1. Pierwsze rozwiązanie: LinearLayout weight atrybut

Tak długo, jak można użyć do tego widoku LinearLayout można wykorzystać do wszystkich ImageView widokiem ten atrybut:

android:layout_weight="{number_value}" 

Wkrótce, jeśli Dodajesz dla wszystkich swoich widoków ImageView tej samej wartości dla weight będą obliczane na tym samym obszarze, ale nie więcej niż ich rodzic vie w atrybuty.

http://developer.android.com/guide/topics/ui/layout/linear.html

Przeczytaj proszę ten problem:

What does android:layout_weight mean?

Jeśli nadal pojawia się problem, zadzwoń do mnie.

  1. drugie rozwiązanie: ImageView scale atrybut

    Dla ImageView można użyć scaleX, scaleY, scaleType atrybuty. Aby mieć tę samą wysokość, należy użyć tej samej wartości scaleY dla wszystkich swoich elementów .

Pomyśl także o używaniu TableLayout lub GridLayout do tego celu.

+0

Możesz dodać layout_weight na RecylerView dzieci –

+0

Czy to jest pytanie? – piotrek1543

+1

Przepraszam, chciałem napisać "Nie możesz", jednak rozwiązałem ten problem, sprawdź moje rozwiązanie, jeśli jesteś zainteresowany. Dzięki. –

Powiązane problemy