2012-12-20 14 views
10

W moim pliku xml Mam układ liniowy, który ma ViewPager do pokazywania obrazów i innego układu liniowego, który zawiera Poprzedni i następny przyciski wyboru images.My xml wygląda następująco:ViewPager w Androidzie zajmuje cały ekran?

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

     <android.support.v4.view.ViewPager 
      android:id="@+id/pager" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:orientation="horizontal" > 

      <Button 
       android:id="@+id/goto_first" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="first" > 
      </Button> 

      <Button 
       android:id="@+id/goto_last" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="last" > 
      </Button> 
     </LinearLayout> 

    </LinearLayout> 

Moim problemem jest to, że ViewPager wykonuje pełny ekran, a Linearlayout z poprzednimi przyciskami nie wyświetla się, ponieważ nie ma już miejsca na narysowanie tego LinearLayout.

Używam Fragments zapełnić ViewPager views.The z pliku xml do widoku fragmentu, że idzie do ViewPager jest:

<ImageView 
    android:id="@+id/ItemImage" 
    android:layout_width="320dp" 
    android:layout_height="180dp" /> 

<TextView 
    android:id="@+id/ItemText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="left|bottom" 
    android:layout_marginBottom="5dp" 
    android:textColor="#ffffffff" 
    android:textStyle="bold" /> 
</FrameLayout> 

Wyjście otrzymuję po renderingu jest to sposób:
1.obraz (obejmujący 45% wysokości ekranu)
2.pasek przestrzeni (obejmujący 45% wysokości ekranu) 3.Textview (obejmujące resztę 10% wysokości ekranu)

Wyjście i zubożenie:
1.image (obejmujący 45% wysokości ekranu)
2.Textview (obejmujący 10% wysokości ekranu)
3.LinearLayout for Buttons (obejmujący pozostałą część ekranu o wysokości 45%)

+0

Mam moją odpowiedź [link] http://stackoverflow.com/questions/8532307/android-viewpager-dimension?rq=1 – user818455

+2

Więc czego się nauczyłeś dzisiaj? Zrób trochę google i szukaj na tej stronie zanim zadasz pytanie :) –

+0

@Miral Zrobiłem to, ale jakoś nie pojawiło się ono w wynikach wyszukiwania i nagle po zamieszczeniu tego pytania znalazłem link do pytania. Zawsze, gdy następnym razem będę wydawać więcej czasu na wyszukiwanie – user818455

Odpowiedz

4

Problem z viewpagerami polega na tym, że nie znają rozmiaru, ponieważ każdy fragment może mieć inny rozmiar. Musisz ręcznie ustawić widok strony, a nie wrap_content. Zalecam ustawienie wagi dla wszystkich elementów w zewnętrznym układzie liniowym.

8

Wystarczy dać ci do viewpager:

android:layout_height="0dp" 
android:layout_weight="1" 
+2

'android: layout_weight =" 1 "' nie działa dla 'ViewPager' –

3

Wystarczy użyć RelativeLayout i wykorzystać atrybuty jak `

android: layout_below

aż do osiągnięcia pozycji pragnienie. Układ Względny jest twoim przyjacielem w tych przypadkach.

7

Użyj RelativeLayout. Dodaj swoje przyciski na dole, używając alignParentBottom="true". Następnie dodaj ViewPager z layout_above="@id/buttons"

+1

To jest właściwa odpowiedź –

Powiązane problemy