相对布局安排视图android

时间:2014-07-07 13:03:24

标签: android android-layout android-fragments android-relativelayout

我是android的新手,所以我可以使用你的帮助。我想实现一个用户可以在两个图像之间切换的图库(在下面的ImageView1中显示)。我想要的显示由:

[TextView1]        [TextView2]    
           [ImageView1]
           [ImageView2]

其中[TextView1]和[TextView2]是静态文本,不会因两个图像之间的翻转而改变。 [ImageView1]是显示的实际图像,[ImageView2]是图像指示器(即选择图像1)。

我使用ViewPager将图像绑定到[ImageView1],如下所示:

<?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="wrap_content"
    android:paddingLeft="10dp"
    android:paddingRight="10dp" >

    <ImageView
        android:id="@+id/image_to_show"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="0dp"
        android:contentDescription="@string/image_description"
        android:scaleType="fitCenter" />

</RelativeLayout>

显示图像的主要片段:

<?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="wrap_content" >

    <TextView
        android:id="@+id/name_of_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="10dp"
        android:textColor="@color/card_text_color"
        android:textSize="14sp" />

    <TextView
        android:id="@+id/date_taken"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:paddingBottom="10dp"
        android:textColor="@color/card_text_color"
        android:textSize="14sp" />

    <android.support.v4.view.ViewPager
        android:id="@+id/details_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="10dp"
        android:paddingTop="10dp" />

    <LinearLayout
        android:id="@+id/page_indicator_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="horizontal"/>

</RelativeLayout>

代码的输出是:

[TextView1]        [TextView2]    
           [ImageView2]
           [ImageView1]

图像和页面指示符的位置相反。

我有什么想法可以解决这个问题?

我不希望视图之间有任何垂直空间。我使用LinearLayout而不是RelativeLayout作为主片段,但根据屏幕尺寸在视图之间留下了空间。

2 个答案:

答案 0 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1">
            <TextView
                android:id="@+id/name_of_image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/card_text_color"
                android:textSize="14sp" />
        </LinearLayout>


        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1">
            <TextView
                android:id="@+id/date_taken"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/card_text_color"
                android:textSize="14sp" />
        </LinearLayout>

    </LinearLayout>
    <android.support.v4.view.ViewPager
        android:id="@+id/details_image"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:paddingBottom="10dp"
        android:paddingTop="10dp" />

    <LinearLayout
        android:id="@+id/page_indicator_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="horizontal"/>

</LinearLayout>

答案 1 :(得分:0)

执行此操作

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

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="TextView1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="TextView1" />
</LinearLayout>

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />


<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

</RelativeLayout>

使用此

更改您的代码