layout_below和多行TextView问题

时间:2012-08-03 08:14:33

标签: android relativelayout

我使用RelativeLayout,其中一些TextView位于另一位下方,最后是ViewPager。

ViewPager在他的参数中有android:layout_below =“@ id / dialog_access_right”,dialog_access_right是最后一个TextView。

我的问题是这个特定的TextView CAN(但不一定)是多行的(最多3个)。但ViewPager始终位于第一行之后,因此它隐藏了TextView的其余部分。

我尝试使用多行,设置行参数为3(如果在某些情况下有两个空行则不太糟糕),将默认文本设置为两个换行符。 这一切都没有。

有没有办法告诉ViewPager重绘并对齐自己(我试图对relativelayout无效,但没有...)和上面的视图?

<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实际上是一条带有2行的多行TextView(可以是3),蓝线是ViewPager中的PagerTabStrip screenshot

2 个答案:

答案 0 :(得分: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" />

答案 1 :(得分:0)

我发现了为什么(好吧,如何解决这个问题)这种情况正在发生。

是因为

    android:layout_alignBottom="@id/access_right_title"

它似乎是这个参数的罪魁祸首。当我删除它(layout_alignBaseline)并将其替换为另一个参数(在这种情况下为android: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" />

我不知道这是一个bug还是想要的东西,但即使在我的情况下android:layout_below完成这项工作,它也可能并不总是......