2012-08-03 135 views
0

我使用RelativeLayout,其中一些TextView一個在另一個之下,最後一個ViewPager。layout_below和多行TextView問題

ViewPager在他的參數中有android:layout_below =「@ id/dialog_access_right」,dialog_access_right是最後一個TextView。

我的問題是,這個特殊的TextView CAN(但不一定)是多行(最大3)。但ViewPager總是位於第一行之後,因此它隱藏了其餘的TextView。

我嘗試使用多行,將行參數設置爲3(如果在某些情況下有兩個空行,則不會太差),請將兩個換行符設置爲默認文本。 這項工作沒有。

有沒有辦法告訴ViewPager重繪和對齊本身(我試圖無效的相對佈局,但沒有......)與上述觀點?

<TextView 
    android:id="@+id/dialog_access_right" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@id/access_right_title" 
    android:layout_alignBottom="@id/access_right_title" 
    android:layout_toRightOf="@id/access_right_title" 
    android:text="@string/dialog_access_right" /> 

<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@id/dialog_access_right" /> 

編輯:這裏是截圖顯示我的問題,「會讀」的TextView是在現實中多TextView的2線(可3),藍線是ViewPager screenshot

內PagerTabStrip
+0

您可以發佈任何截圖你的問題。很難假設。 – 2012-08-03 09:58:23

+0

在您的textview android:minLines =「3」中嘗試添加一個屏幕截圖並添加解釋 – eephyne 2012-08-03 13:28:27

+0

或爲viewpager授予marginBottom =「15dp」。 – 2012-08-03 13:42:53

回答

0

我發現了爲什麼(以及如何解決這個問題)發生這種情況。

這是因爲

android:layout_alignBottom="@id/access_right_title" 

這似乎是這個參數是culprit.When我刪除它(layout_alignBaseline太)與另一個參數替換它(機器人:layout_below在這種情況下)的ViewPager是正確定位。

<TextView 
    android:id="@+id/dialog_access_right" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/last_modified_date_name" 
    android:layout_toRightOf="@+id/access_right_title" 
    android:text="TextView" /> 

<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@id/dialog_access_right" /> 

我不知道這是否是一個錯誤或想要的東西,但即使在我的情況了android:layout_below不工作,它可能並不總是...

0

您可以先嚐試在底部設置您的ViewPager,然後將textView放在它的上方。 您也不會爲您的標籤設置單獨的視圖。你可以拉一個字符串資源並連接它。這不僅優化了視圖繪圖,而且還使您的XML文件更小,更易於理解和調試。

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

<TextView 
    android:id="@+id/dialog_access_right" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:above="@id/viewpager" 
    android:below="@id/dateModified" 
    android:text="@string/dialog_access_right" /> 
+0

只是試過了,除了textview高於viewpager(在z-index),這是正常的。考慮到第二行將在標籤的底部開始,而不是「Can Read」,我不會分開標籤,我如何對齊這三條線? (不知道我是否很清楚) – eephyne 2012-08-03 17:03:03

+0

我想我跟着你。看起來您可能必須在調用setText()之後在您的佈局上調用invalidate()。這將迫使所有事情得到重新測量和繪製。希望這會解決它。 – 2012-08-03 17:53:30

+0

我已經試過了,仍然沒有運氣:( – eephyne 2012-08-03 18:04:26