如何覆盖PagerTabStrip

时间:2013-05-02 04:24:59

标签: android imageview overlay android-viewpager

我正在创建一个使用ViewPager和PagerTabStrip的简单android项目。 ViewPager的每个片段都包含一个ImageView和一个ProgressBar。现在,片段的ImageView没有底层PagerTabStrip,因为我猜起PagerTabStrip在顶部预留了空间。

理想情况下,我希望ImageView位于条带下方,就好像我已将PagerTabStrip的可见性更改为View.GONE,但条带仍然存在以覆盖它。

我尝试通过将其缩放为“FitXY”来调整ImageView的边距并使用XML参数进行调整,但它仍然不在PagerTabStrip下。任何帮助将不胜感激!这是我下面的XML代码:

MainActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/home_screen_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <android.support.v4.view.PagerTabStrip
            android:id="@+id/pager_tab_strip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:background="#000000"
            android:paddingBottom="0dp"
            android:paddingTop="0dp"
            android:textAppearance="@style/PagerTabStripText"
            android:textColor="#fff" />

    </android.support.v4.view.ViewPager>

     <ImageButton
        android:id="@+id/fbButton"
        android:layout_width="@dimen/button_size"
        android:layout_height="@dimen/button_size"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="@dimen/fb_button_left_margin"
        android:layout_marginBottom="@dimen/download_button_bottom_margin"
        android:background="@drawable/facebookbutton" />

    <ImageButton
        android:id="@+id/miscButton"
        android:layout_width="@dimen/button_size"
        android:layout_height="@dimen/button_size"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="@dimen/button_margin"
        android:layout_marginBottom="@dimen/download_button_bottom_margin"
        android:layout_toRightOf="@+id/fbButton"
        android:background="@drawable/button" />

    <ImageButton
        android:id="@+id/downloadButton"
        android:layout_width="@dimen/button_size"
        android:layout_height="@dimen/button_size"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="@dimen/button_margin"
        android:layout_marginBottom="@dimen/download_button_bottom_margin"
        android:layout_toRightOf="@+id/miscButton"
        android:background="@drawable/button" />

    <ImageView
        android:id="@+id/bottomBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:adjustViewBounds="true"
        android:baselineAlignBottom="true"
        android:cropToPadding="true"
        android:padding="0dp"
        android:scaleType="fitXY"
        android:src="@drawable/bottombar" />

</RelativeLayout>

MainActivityFragment.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

   <ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="@string/imageview_description"
        android:scaleType="fitXY" />

</RelativeLayout>

以下是现在的截图:

    With PagerTabStrip: http://i.imgur.com/w1WaF9P 

    Without PagerTabStrip: http://i.imgur.com/Nr2Ny3v

第二张图片是通过使用平移动画来向上移动PagerTabStrip来实现的。

理想情况下,ImageView从左上角的0,0开始,并与PagerTabStrip重叠,以便在翻译时,没有空白空格。

1 个答案:

答案 0 :(得分:0)

如果你能以完整的形式展示MainActivity.xml会很有帮助,我相信那里有更多的View配置。

根据您提供的信息,导致此问题的唯一原因是您在MainActivityFragment.xml布局中使用RelativeLayout。

阅读RelativeLayout文档:

  

“一个布局,其中儿童的位置可以相互描述或与父母相关。”

     

“请注意,您不能在RelativeLayout的大小与其子项的位置之间存在循环依赖关系。例如,您不能将RelativeLayout的高度设置为WRAP_CONTENT且子项设置为ALIGN_PARENT_BOTTOM。”

我建议你使用 LinearLayout 作为管理自己视图的片段而不依赖。