水平对齐ViewPager中的元素

时间:2014-06-09 20:18:23

标签: android android-layout android-viewpager scrollview relativelayout

所以我的问题是以下......我有一个RelativeLayout,它有3个主要元素。左侧有2个按钮,右侧有另一个按钮,中心有一个包含ViewPager和按钮的ScrollView布局。

按钮与它的父母对齐。但我无法让ViewPager自行调整。

这是我的XML布局。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">

<LinearLayout
    android:id="@+id/leftButtons"
    android:weightSum="1"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_marginLeft="10dip"
    android:orientation="vertical"
    android:layout_alignParentStart="true"
    >

    <Space
        android:layout_weight="0.5"
        android:layout_width="match_parent"
        android:layout_height="0dip" />
    <ImageButton
        android:id="@+id/leftArrowBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:contentDescription="@string/left_arrow"
        android:gravity="center_vertical|center_horizontal"
        android:src="@drawable/arrow_left_selector"
        android:layout_marginBottom="60dip"
        />

    <ImageButton
        android:id="@+id/leftArrowBtnAll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:contentDescription="@string/left_arrow"
        android:gravity="center_vertical|center_horizontal"
        android:src="@drawable/arrow_left_selector_all" />
</LinearLayout>

<ScrollView
    android:id="@+id/middleLayouts"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:layout_toRightOf="@+id/leftButtons"
    android:layout_toLeftOf="@+id/rightButtons"
    >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingTop="35dip"
        android:gravity="center_horizontal"
        >

        <Button
            android:id="@+id/selectDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dip"
            android:background="@drawable/default_button_rounded"
            android:drawablePadding="35dip"
            android:drawableRight="@drawable/ic_date_light"
            android:gravity="center_vertical|center_horizontal"
            android:paddingBottom="5dip"
            android:paddingLeft="25dip"
            android:paddingRight="25dip"
            android:paddingTop="5dip"
            android:text="@string/monthly_statistics_"
            android:textColor="@color/light_bg" />

        <android.support.v4.view.ViewPager
            android:id="@+id/view_pager"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center_horizontal"
        />
    </LinearLayout>
</ScrollView>

<LinearLayout
    android:id="@+id/rightButtons"
    android:weightSum="1"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_marginRight="10dip"
    android:orientation="vertical"
    android:layout_alignParentEnd="true"
    >
    <Space
        android:layout_weight="0.5"
        android:layout_width="match_parent"
        android:layout_height="0dip" />
    <ImageButton
        android:id="@+id/rightArrowbtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:contentDescription="@string/right_arrow"
        android:gravity="center_vertical|center_horizontal"
        android:src="@drawable/arrow_right_selector"
        android:layout_marginBottom="60dip"
        />

    <ImageButton
        android:id="@+id/rightArrowbtnAll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:contentDescription="@string/right_arrow"
        android:gravity="center_vertical|center_horizontal"
        android:src="@drawable/arrow_right_selector_all" />
</LinearLayout>

这是一个看起来如何的ScreenShot ...... enter image description here

这是布局编辑器的屏幕截图,显示表格应该对齐....

我已经尝试了所有类型的布局和重力等等。但我无法将其置于中心位置! :(

由于

enter image description here

2 个答案:

答案 0 :(得分:0)

对我来说,看起来像在scrollview中的线性布局应该具有match_parent的宽度而不是wrap_content

<ScrollView
    android:id="@+id/middleLayouts"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:layout_toRightOf="@+id/leftButtons"
    android:layout_toLeftOf="@+id/rightButtons"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingTop="35dip"
        android:gravity="center_horizontal"
        >

答案 1 :(得分:0)

我终于明白了。我的问题是我使用TableLayout创建表格,而TableLayout始终将其宽度设置为match_parent。因此,TableLayout使用整个宽度而不是居中。我使用垂直TableLayoutLinearLayout切换到TableRows,现在效果很好。 :)