在dp中给出没有大小的scrollview的高度

时间:2016-05-27 06:37:02

标签: android android-layout uiscrollview

我必须以dp中没有硬编码值的方式设计布局,所以我正在尝试使用权重来为视图提供高度。我尝试UI在手机和平​​板电脑中看起来都是一样的。

但是,滚动视图不允许layout_weight我已将高度设置为scrollview。我不想这样做。

  

如何设置scrollview或主要封闭的高度   容器布局使用重量/在dp中没有硬编码?

XML

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


    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="120dp"//WANT TO AVOID HARD CODING
        android:layout_above="@+id/btn_signup"
        android:fadeScrollbars="false"
        android:scrollbarAlwaysDrawVerticalTrack="true"
        >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="match_parent"

            android:orientation="vertical"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            >

            <android.support.design.widget.TextInputLayout
                android:id="@+id/input_layout_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText
                    android:id="@+id/roomno_et"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="ROOM NO"
                    android:inputType="number"
                    android:singleLine="true"/>
            </android.support.design.widget.TextInputLayout>


            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="FIRST NAME"
                    android:inputType="text"
                    android:singleLine="true"/>
            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="LAST NAME"
                    android:inputType="text"
                    android:singleLine="true"/>
            </android.support.design.widget.TextInputLayout>
        </LinearLayout>

    </ScrollView>

    <Button
        android:id="@+id/btn_signup"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="20dp"
        android:background="@color/colorPrimary"
        android:text="Checkin"
        android:textColor="@android:color/white"/>


</RelativeLayout>

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

您可以将ScrollView放入父LinearLayout并为其指定权重。

这样的事情:

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

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/btn_signup"
    android:fadeScrollbars="false"
    android:scrollbarAlwaysDrawVerticalTrack="true">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingLeft="20dp"
        android:paddingRight="20dp">

        <android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/roomno_et"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="ROOM NO"
                android:inputType="number"
                android:singleLine="true"/>
        </android.support.design.widget.TextInputLayout>


        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="FIRST NAME"
                android:inputType="text"
                android:singleLine="true"/>
        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="LAST NAME"
                android:inputType="text"
                android:singleLine="true"/>
        </android.support.design.widget.TextInputLayout>
    </LinearLayout>
</ScrollView>
</LinearLayout>

<Button
    android:id="@+id/btn_signup"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginTop="20dp"
    android:background="@color/colorPrimary"
    android:text="Checkin"
    android:textColor="@android:color/white"/>