我的申请中有一项活动。在这里,我使用一些编辑框从用户那里获取少量值。问题是,如果手机的方向是纵向,那么我可以看到所有的EditBoxes和按钮,但是当方向变为横向时,按钮变得隐藏,我只能看到前3个编辑框而没有别的。我想要的是,如果出现这种情况并且布局的大小超过手机的高度,则应该出现滚动,以便我可以向下滚动以查看下面的字段和按钮。有没有更好的方法呢???? (对横向模式使用不同的布局将导致重新创建我不想要的活动)
以下是我的活动代码
<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.name.package.service">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/title_text_size"
android:textStyle="bold"
android:gravity="center_horizontal"
android:id="@+id/tv_lable"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_serivce_description"
android:gravity="left"
android:text="@string/plumber_service_description"
android:textSize="@dimen/description_text_size"
android:layout_marginTop="@dimen/large_margin"
android:layout_below="@id/tv_book_service_title_lable"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name :"
android:id="@+id/tv_customer_name_label"
android:layout_below="@id/tv_serivce_description"
android:layout_marginTop="@dimen/huge_spacing"
android:textSize="@dimen/label_text_size"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_customer_name"
android:layout_alignBottom="@id/tv_customer_name_label"
android:layout_toRightOf="@id/tv_customer_name_label"
android:layout_marginLeft="@dimen/normal_margin"
android:hint="fiil your name"
android:gravity="center_horizontal"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Email :"
android:id="@+id/tv_customer_email_label"
android:layout_below="@id/tv_customer_name_label"
android:layout_marginTop="@dimen/large_spacing"
android:textSize="@dimen/label_text_size"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_customer_email"
android:layout_alignBottom="@id/tv_customer_email_label"
android:layout_toRightOf="@id/tv_customer_email_label"
android:layout_marginLeft="@dimen/normal_margin"
android:hint="fiil your email"
android:gravity="center_horizontal"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Contact :"
android:id="@+id/tv_customer_contact_label"
android:layout_below="@id/tv_customer_email_label"
android:layout_marginTop="@dimen/large_spacing"
android:textSize="@dimen/label_text_size"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_customer_contact"
android:layout_alignBottom="@id/tv_customer_contact_label"
android:layout_toRightOf="@id/tv_customer_contact_label"
android:layout_marginLeft="@dimen/normal_margin"
android:hint="fiil your email"
android:gravity="center_horizontal"
android:marqueeRepeatLimit="marquee_forever"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_service_description_label"
android:text="Description"
android:textSize="@dimen/label_text_size"
android:layout_below="@id/tv_customer_contact_label"
android:layout_marginTop="@dimen/large_spacing"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_service_description"
android:layout_below="@id/tv_service_description_label"
android:layout_marginTop="@dimen/large_margin"
android:hint="What service you need ?"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Book Service"
android:gravity="center_horizontal"
android:layout_below="@id/et_service_description"
android:layout_marginTop="@dimen/large_margin"
android:layout_centerHorizontal="true"
/>
我还在清单文件中使用了以下设置
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTop"
提前感谢您分享知识......:D
答案 0 :(得分:1)
在RelativeLayout
内包裹Scrollview
的布局。如果布局不适合窗口,则启用滚动以便您滚动并查看所有视图,否则它们将无法在屏幕上显示。
用法
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollViewid"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
-------add your RelativeLayout ------
</ScrollView>
ScrollView
是FrameLayout
,这意味着您应该在其中放置一个包含整个内容的子项进行滚动;这个子本身可能是一个具有复杂对象层次结构的布局管理器。经常使用的子项是垂直方向的LinearLayout,呈现用户可以滚动的顶级项目的垂直数组。
答案 1 :(得分:0)
请使用LinearLayout而不是RelativeLayout来解决您的问题