0

我使用一个RelativeLayout 和一些TextView 一个在另一个下面,最后是一个ViewPager。

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

我的问题是这个特定的 TextView 可以(但不一定)是多行的(最多 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" />

编辑:这是显示我的问题的屏幕截图,“Can Read” TextView 实际上是一个多行 TextView,有 2 行(可以是 3),蓝线是 ViewPager 内的 PagerTabStrip 截屏

4

2 回答 2

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" />

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

于 2012-08-04T13:23:31.433 回答
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" />
于 2012-08-03T14:10:38.663 回答