使垂直滚动视图缩小/扩展取决于屏幕大小

时间:2014-09-12 01:06:59

标签: android android-layout

我有一个包含3个主要元素的布局 - 包含一个图像视图的布局,以及垂直滚动视图和水平滚动视图。 (参见下面的XML :)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".HomeScreen"
    android:weightSum="1">

    <RelativeLayout
        android:id="@+id/RelLayoutTitleImage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="1">


        <ImageView
            android:layout_width="fill_parent"
            android:layout_height="100dp"
            android:layout_alignParentTop="true"
            android:id="@+id/titleimage"
            android:src="@drawable/saferroadsshellharbourtitle"
            android:layout_weight="0.08" />
    </RelativeLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="272dp"
        android:id="@+id/scrollView"
        android:layout_gravity="center"
        >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="272dp"
            android:orientation="vertical">

            <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:id="@+id/btn_Old_logo"
                android:clickable="true"
                android:src="@drawable/oldlogomenu"/>

            <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:id="@+id/btn_report_a_hazard"
                android:layout_below="@+id/btn_Old_logo"
                android:clickable="true"
                android:src="@drawable/reportahazardmenu"/>

            <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:layout_below="@+id/btn_report_a_hazard"
                android:id="@+id/btn_Council_Website"
                android:clickable="true"
                android:src="@drawable/councilwebsitemenu"/>

            <ImageButton
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:layout_below="@+id/btn_Council_Website"
                android:id="@+id/btn_dob_in_a_hoon"
                android:clickable="true"
                android:src="@drawable/dobinahoonmenu"/>

        </RelativeLayout>
    </ScrollView>


    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/horizontalScrollView2"
        android:layout_gravity="bottom">

        <RelativeLayout
            android:orientation="horizontal"
            android:layout_width="120dp"
            android:layout_height="90dp"
            android:gravity="bottom"
            >


            <ImageButton
                android:layout_width="120dp"
                android:layout_height="90dp"
                 android:id="@+id/facebook"
                android:layout_gravity="center_horizontal"
                android:clickable="true"
                android:src="@drawable/facebookbutton"
                android:scaleType="fitCenter"/>

            <ImageButton
                android:layout_width="120dp"
                android:layout_height="90dp"
                android:layout_toRightOf="@+id/facebook"
                android:id="@+id/twitter"
                android:layout_gravity="center_horizontal"
                android:clickable="true"
                android:src="@drawable/scclogoold"
                android:scaleType="fitCenter"/>

            <ImageButton
                android:layout_width="120dp"
                android:layout_height="90dp"
                android:layout_toRightOf="@+id/twitter"
                android:id="@+id/contact"
                android:layout_gravity="center_horizontal"
                android:clickable="true"
                android:src="@drawable/contactbutton"
                android:scaleType="fitCenter"/>

        </RelativeLayout>


    </HorizontalScrollView>


</LinearLayout>

我想要做的是将垂直滚动视图的上边缘“固定”到图像视图的下边缘,将垂直滚动视图的下边缘“固定”到水平滚动视图的上边缘。因此,垂直滚动视图将根据设备的屏幕大小进行扩展和缩小。

有人可以解释一下如何实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

这是通过在布局中使用layout_weight和WeightSum来实现的。它会响应,例如我得到一个带有2个按钮的水平线性布局我将水平布局的weightSum设置为2,按钮layout_weight设置为1这将导致50%50%的布局共享按钮,它将响应设备的尺寸。