如何修复元素的位置?

时间:2018-01-09 19:45:32

标签: android xml android-layout-weight

我使用layout_weight设置ScrollView的位置,但问题是,我稍后会在其中添加元素,并且ScrollView的大小会扩大,所以它会改变位置,我需要它只扩展到底部,但它也扩大到顶部。所以我需要修复它,以便它不会在顶部扩展。我尝试在dp中使用直接尺寸而不是重量,但我需要它在不同分辨率下看起来大致相同。也许还有一些其他方法可以解决问题,而不使用layout_height,所以感谢您的建议。下面是xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/chose1"
android:gravity="center_horizontal"
>


<Button
    android:id="@+id/back"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:layout_marginTop="10dp"
    android:layout_marginLeft="-15dp"
    android:layout_gravity="left"
    android:background="@android:color/transparent"
    android:drawableLeft="@drawable/back"/>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical"
    android:id="@+id/space"
    >
</LinearLayout>
<Button
    android:id="@+id/button"
    android:layout_width="320dp"
    android:layout_height="2dp"
    android:text=""
    android:layout_marginTop="0dp"/>

<ScrollView
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="0dp"
    android:layout_weight="13"
    android:scrollbars="none">
    <LinearLayout
        android:id="@+id/recipes"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        >
    </LinearLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:0)

对于示例,请尝试在滚动视图中的线性布局中添加更多按钮,并检查这是否是您想要的。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    >
    <Button
        android:id="@+id/back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_gravity="left"
        android:background="@android:color/transparent"
        />


    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:text=""
        android:background="@android:color/darker_gray"
        android:layout_marginTop="0dp"/>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="none">

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_margin="10dp"
            android:layout_height="match_parent">

            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/darker_gray"/>

            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/holo_blue_bright"/>

            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/holo_blue_light"/>

            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/holo_orange_light"/>
            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/holo_green_dark"/>
            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/darker_gray"/>
            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/holo_green_light"/>

            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/darker_gray"/>

            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/holo_blue_bright"/>

            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/holo_blue_light"/>

            <Button
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:layout_marginTop="10dp"
                android:background="@android:color/holo_orange_light"/>


        </LinearLayout>

    </ScrollView>
</LinearLayout>

答案 1 :(得分:0)

问题出在你的线性布局里面,滚动视图是wrap_content,当你开始在滚动视图中添加内容时它会增长。

<LinearLayout
    android:id="@+id/recipes"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"/>