如何将ViewPagerIndicator与片段底部对齐

时间:2014-06-23 06:25:08

标签: android android-layout android-fragments

我正在尝试使用Jake Wharton的ViewPagerIndicator,我想将指标对准屏幕底部。然而,我遇到了这些问题。

我的代码

activity_main.xml中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:app1="http://schemas.android.com/apk/res/com.hidden.hidden"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <com.viewpagerindicator.LinePageIndicator
        android:id="@+id/indicator"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:padding="10dip"
        app1:fillColor="@android:color/darker_gray" />

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/indicator" />

</RelativeLayout>

现在这个布局做了以下布局: Indicator aligned to top

这很棒,但我想让指标位于文本下方的底部以及我可能放在片段布局中的任何其他内容。

我尝试更改android:layout_alignParentBottom="true",但这只是给我这样的事情: enter image description here

这个位置很完美但是从我对布局的理解来看,片段文本现在位于指示器下方和屏幕外。

以下是三种片段布局之一:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text will go here!" />

</LinearLayout>

还有两个这样的但不需要发布。

有没有办法让指标在屏幕底部显示自己的布局,并将片段文本放在屏幕上方?我在这里做了一些搜索,但没有发现任何与ViewPagerIndicator有关的内容。

提前致谢!

6 个答案:

答案 0 :(得分:4)

indicator android:layout_alignParentBottom =“true”viewpager android:layout_above =“@ + id / indicator”中尝试此set属性

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:app1="http://schemas.android.com/apk/res/com.hidden.hidden"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <com.viewpagerindicator.LinePageIndicator
        android:id="@+id/indicator"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:padding="10dip"
        app1:fillColor="@android:color/darker_gray" />

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_above="@id/indicator" />

</RelativeLayout>

答案 1 :(得分:1)

    Try to align at the bottom of viewpager


  <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_weight="50" >

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

                <com.viewpagerindicator.LinePageIndicator
        android:id="@+id/indicator"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignBottom="@+id/pager"
        android:padding="10dip"
        app1:fillColor="@android:color/darker_gray" />
            </RelativeLayout>

答案 2 :(得分:1)

请尝试以下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app1="http://schemas.android.com/apk/res/com.crm.dealerportal"
    xmlns:app="http://schemas.android.com/apk/res/com.crm.isf"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="5dp" >

    <TextView
        android:id="@+id/textViewDescription"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="0"
        android:text="Text"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" >
    </android.support.v4.view.ViewPager>

    <com.viewpagerindicator.LinePageIndicator
        android:id="@+id/indicator"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:padding="5dip"
        app:gapWidth="20dip"
        app:lineWidth="40dip"
        app:selectedColor="@color/actionBarBG"
        app:strokeWidth="7dp"
        app:unselectedColor="@android:color/white" />

</LinearLayout>

答案 3 :(得分:1)

当您在parent.which中使用相对布局时,其属性为:

 android:layout_alignParentBottom="true"

只需将此添加到您的viewpager指标窗口小部件,如:

 <com.viewpagerindicator.LinePageIndicator
    android:id="@+id/indicator"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:padding="10dip"
    app1:fillColor="@android:color/darker_gray" />

会在屏幕底部设置指示符。

答案 4 :(得分:1)

试试这种方式,希望这可以帮助您解决问题。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app1="http://schemas.android.com/apk/res/com.hidden.hidden"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.viewpagerindicator.LinePageIndicator
        android:id="@+id/indicator"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:padding="10dp"
        app1:fillColor="@android:color/darker_gray" />

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

</LinearLayout>

答案 5 :(得分:1)

尝试这种方式:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

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


    <com.viewpagerindicator.LinePageIndicator
            android:id="@+id/indicator"
            android:padding="10dp"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"       
            app1:fillColor="@android:color/darker_gray"

            />    

</RelativeLayout>

希望这有帮助!