垂直对齐ViewPager和TextView

时间:2012-07-05 09:14:28

标签: android textview relativelayout android-viewpager vertical-alignment

<?xml version="1.0" encoding="utf-8"?>
<!-- Layout-Normal-Portrait -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/thumb_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <android.support.v4.view.ViewPager
            android:id="@+id/mypager"
            android:layout_width="fill_parent"
            android:layout_height="300dp"
            android:layout_above="@id/sum_layout"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true" >
        </android.support.v4.view.ViewPager>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/sum_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@id/thumb_layout" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dp"
            android:text="@string/lorem__ipsum"
            android:textColor="@color/black" />
    </RelativeLayout>

</RelativeLayout>

当我运行该程序时,它在编辑器中显示错误“错误:错误:找不到与给定名称匹配的资源(在'layout_above'处,值为'@id / sum_layout')。 “此代码中的第22行。

任何人都能说出来,出了什么问题?

5 个答案:

答案 0 :(得分:3)

我想知道为什么你这么复杂。

无论如何这里是纠正的片段

<?xml version="1.0" encoding="utf-8"?>
<!-- Layout-Normal-Portrait -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" > <---No need to specify android:orientation

    <android.support.v4.view.ViewPager
        android:id="@+id/mypager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/textView" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:padding="6dp"
        android:text="Hello"
        android:textColor="@android:color/black" />  <---Place your text String here 

</RelativeLayout>

答案 1 :(得分:0)

使用@+id/sum_layout

并清理Project并再次运行!

答案 2 :(得分:0)

这是因为你在第一次引用之后声明了sum_layout id。 最好的解决方案是在/res/values/ids.xml中声明它,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources> 
     <item type="id" name="sum_layout" />
</resources>

然后在没有+关键字

的所有布局中引用它
 <android.support.v4.view.ViewPager
        android:layout_above="@id/sum_layout"
    />

并且

 <RelativeLayout android:id="@id/sum_layout" />

答案 3 :(得分:0)

试试这个

xmlns:tools="http://schemas.android.com/tools"


android:layout_width="fill_parent"


android:layout_height="fill_parent"

android:background="@color/white"

android:orientation="vertical" >

<android.support.v4.view.ViewPager

    android:id="@+id/mypager"

    android:layout_width="fill_parent"

    android:layout_height="300dp"

    android:layout_alignParentLeft="true"

    android:layout_alignParentRight="true"

    android:layout_alignParentTop="true" >

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

<TextView
    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:padding="6dp"

    android:textColor="@color/black" />

答案 4 :(得分:0)

当您使用相对布局时,您将控件相互关联。当您添加任何控件时,您将根据之前定义的控件添加下一个控件。在这里您已经定义了视图分页器布局,该布局具有id @ + ID / sum_layout。但你已经在viewr页面下定义了布局@ + id / sum_layout.so它没有得到id @ + id / sum_layout,所以它如何在文本视图下设置视图寻呼机。首先添加视图然后添加到其中低于/高于。这是你的错误:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <android.support.v4.view.ViewPager
            android:id="@+id/mypager"
            android:layout_width="fill_parent"
            android:layout_height="300dp">    
    </android.support.v4.view.ViewPager>

    <TextView 
        android:id="@+id/mytext"
        android:text="@string/lorem__ipsum"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/mypager"/>
</RelativeLayout>

根据您需要保持其下方或上方的布局,设置布局。 希望它会对你有所帮助。