我必须以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>
答案 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"/>