1

這是什麼原因造成了我很多問題:ViewPager和ViewPagerIndicator內的RelativeLayout製作的RelativeLayout通過全屏幕擴大

<RelativeLayout 
    android:id="@+id/galleryLayout" 
    android:layout_width="match_parent" 
    android:layout_height="180dp" 
    android:background="@color/white"> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/imageViewPager" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" /> 

     <com.viewpagerindicator.CirclePageIndicator 
      android:id="@+id/circlePageIndicator" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:padding="@dimen/padding_middle" 
      android:layout_alignParentBottom="true" 
      android:layout_centerHorizontal="true"/> 

</RelativeLayout> 

眼下這段代碼一種作品不僅是因爲我給自己定的RelativeLayout的高度180dp,但我不想這樣。我希望整個事情根據ViewPager的孩子有高度。

如果我將RelativeLayout的高度設置爲WrapContent,確切有兩個問題。

問題1

ViewPager將擴大在整個屏幕。它只是不尊重它的wrap_content高度屬性。但我已用this answer部分解決了這個問題。如果有更好的解決方案,我仍然會很感激。

問題2

我想有CirclePageIndicator在它的底部的父(RelativeLayout的),所以我已經添加屬性layout_alignParentBottom =「真」但現在因爲此,RelativeLayout的將在擴大出於某種原因整個屏幕。

所以我想要的是一個包圍ViewPager的RelativeLayout,它圍繞它的孩子。孩子從網上下載,所以我不能預先設置它。在RelativeLayout的底部,我想要一個ViewPagerIndicator。

回答

0

至於問題1你正確地解決了這個問題,ViewPager默認情況下不會包裝它的子節點。

至於第二個問題,這是一個正常的RelativeLayout行爲。如果您將其height設置爲wrap_content,並添加兩個孩子,一個使用layout_alignParentTop="true",另一個使用layout_alignParentBottom="true",他們將拉伸高度方向上的layout

你應該做的是:問問自己,你是否真的需要RelativeLayout。如果您提供了您的整個佈局,我不認爲需要RelativeLayout(其代價高昂)。垂直LinearLayout會做得很好。如果您決定確實需要RelativeLayout,請嘗試將Indicator's規則從layout_alignParentBottom="true"更改爲android:layout_below="@+id/imageViewPager"

+0

謝謝你的回答。問題是我希望指標「在ViewPager內」,而不是在它下面。所以我除了使用RelativeLayout之外別無他法。 – Guy

+0

你可以隨時使用'FrameLayout'('Indicator' with'layout_gravity =「bottom」') –

+0

嗯,這是一個有趣的想法。我沒有想到這一點。我現在不能嘗試,但我會盡快回家。如果有效,我會回覆你並接受你的回答。謝謝! – Guy

相關問題